1
私は2つのウィンドウを持っています。最初のウィンドウでボタンをクリックすると、2番目のウィンドウが表示され、イメージの選択/アップロードを促します。関連するすべてのXAMLオブジェクトが作成され、スタイル設定されます。1つのウィンドウから別のウィンドウに文字列を渡す - XAML
質問:2番目のウィンドウのソースファイルの文字列値を最初のウィンドウのテキストブロックに表示するにはどうすればよいですか?
SOURCEFILEコードのオープンウィンドウ&取得文字列値:
private void btn_Image_Click(object sender, RoutedEventArgs e)
{
// Create the window
AddImage AddImageScreen = new AddImage();
AddImageScreen.Owner = this;
// Open and show the window
AddImageScreen.ShowDialog();
txtblock_ImgAddress = // How do I get the image source file here?
}
選択/画像をアップロードコード:
public partial class AddImage : Window
{
string imageDirectory;
public AddImage()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.Filter = "Images (*.JPG;*.JPEG;*.PNG) | *.JPG;*.JPEG;*.PNG";
Nullable<bool> result = dlg.ShowDialog();
string sourceFile = "";
string fileName = "";
if (result == true)
{
sourceFile = dlg.FileName;
fileName = sourceFile.Substring(sourceFile.LastIndexOf('\\'));
var SourceFile = sourceFile;
}
string destinationFile = imageDirectory + fileName;
File.Copy(sourceFile, destinationFile);
GetFilesInDirectory();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
SetImageDirectory();
GetFilesInDirectory();
}
private void GetFilesInDirectory()
{
// Populate images in selection box
lbxFiles.ItemsSource = null;
string[] images = Directory.GetFiles(imageDirectory);
string[] fileNames = new string[images.Length];
for (int i = 0; i < images.Length; i++)
{
fileNames[i] = images[i].Substring(images[i].LastIndexOf('\\') + 1);
}
lbxFiles.ItemsSource = fileNames;
}
private void SetImageDirectory()
{
// Set the directions to get into images
string currentDirectory = Directory.GetCurrentDirectory();
DirectoryInfo parent = Directory.GetParent(currentDirectory);
DirectoryInfo grandparent = parent.Parent;
currentDirectory = grandparent.FullName;
imageDirectory = currentDirectory + "\\images";
}
private void lbxFiles_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// open selected file
string fileName = lbxFiles.SelectedItem as string;
if (fileName != null)
{
imgAnimal.Source = new BitmapImage(new Uri(imageDirectory + "\\" + fileName, UriKind.Absolute));
}
}
private void btn_Save_Click(object sender, RoutedEventArgs e)
{
}
AddImageクラスはなく、XAMLとXAMLだけです。 – Legend
Dude、 'public partial class AddImage'はAddImageクラスです –
私は2番目のウィンドウに表示するように再編集しましたが、 mainWindow上の画像がパスを通して画像を表示しない場合の問題 – Legend