将图像源从一个 window 传递到另一个
Passing an image source from one window to another
我有一个 WPF 应用程序,其中包含 2 windows。
Window1包含一个按钮和一张图片,window2只包含一张图片。
当您按下按钮时,您会在 window 2 上的图像中看到第一张图像的源。虽然两个 windows 同时可见。
我无法完成这项工作。
目前这是我的代码:
namespace WpfApplication3
{
public partial class MainWindow : Window
{
private string msMapImages = AppDomain.CurrentDomain.BaseDirectory + "Images/";
public MainWindow()
{
InitializeComponent();
Image1.Source = new BitmapImage(new Uri(msMapImages + "image.jpg"));
Window2 win2 = new Window2();
win2.Show();
}
private void Btnsend_Click(object sender, RoutedEventArgs e)
{
Window2 win2 = new Window2();
win2.Image2.Source = Image1.Source;
}
}
}
图像在 window 1 中完美加载,但当我按下按钮时,相同的图像不会出现在 window 2 中。
您可以做的是让事件设置第二个 window 的内容,其中另一个 window 将 ImageControl 绑定到父 Content 的内容。
你的问题让我更多的感觉是你对WPF很陌生。在这种情况下,您真的应该在 MVVM 上投入少量时间。它会很快得到回报。
public partial class MainWindow : Window
{
private string msMapImages = AppDomain.CurrentDomain.BaseDirectory + "Images/";
private Window win2 { get; set; }
public MainWindow()
{
InitializeComponent();
Image1.Source = new BitmapImage(new Uri(msMapImages + "image.jpg"));
win2 = new Window2();
win2.Show();
}
private void Btnsend_Click(object sender, RoutedEventArgs e)
{
win2.Content = Image1.Source;
}
}
另一个 window 看起来像这样
<Window Name ="Window2">
<Grid>
<Image Source={Binding .} />
</Grid>
</Window2>
应该是这样。在更复杂的情况下,您将使用自定义 class (ViewModel) 并将其设置为内容而不是 ImageSource,后者将成为 ViewModel class.
的一部分
我有一个 WPF 应用程序,其中包含 2 windows。
Window1包含一个按钮和一张图片,window2只包含一张图片。
当您按下按钮时,您会在 window 2 上的图像中看到第一张图像的源。虽然两个 windows 同时可见。
我无法完成这项工作。 目前这是我的代码:
namespace WpfApplication3
{
public partial class MainWindow : Window
{
private string msMapImages = AppDomain.CurrentDomain.BaseDirectory + "Images/";
public MainWindow()
{
InitializeComponent();
Image1.Source = new BitmapImage(new Uri(msMapImages + "image.jpg"));
Window2 win2 = new Window2();
win2.Show();
}
private void Btnsend_Click(object sender, RoutedEventArgs e)
{
Window2 win2 = new Window2();
win2.Image2.Source = Image1.Source;
}
}
}
图像在 window 1 中完美加载,但当我按下按钮时,相同的图像不会出现在 window 2 中。
您可以做的是让事件设置第二个 window 的内容,其中另一个 window 将 ImageControl 绑定到父 Content 的内容。 你的问题让我更多的感觉是你对WPF很陌生。在这种情况下,您真的应该在 MVVM 上投入少量时间。它会很快得到回报。
public partial class MainWindow : Window
{
private string msMapImages = AppDomain.CurrentDomain.BaseDirectory + "Images/";
private Window win2 { get; set; }
public MainWindow()
{
InitializeComponent();
Image1.Source = new BitmapImage(new Uri(msMapImages + "image.jpg"));
win2 = new Window2();
win2.Show();
}
private void Btnsend_Click(object sender, RoutedEventArgs e)
{
win2.Content = Image1.Source;
}
}
另一个 window 看起来像这样
<Window Name ="Window2">
<Grid>
<Image Source={Binding .} />
</Grid>
</Window2>
应该是这样。在更复杂的情况下,您将使用自定义 class (ViewModel) 并将其设置为内容而不是 ImageSource,后者将成为 ViewModel class.
的一部分