我有一个包含2个窗口的WPF应用程序。
窗口1包含一个按钮和一个图像,窗口2只包含一个图像。
当您按下按钮时,您将看到第一张图像中的信号源,位于窗口2上的图像中。两个窗口同时可见。
我无法完成这项工作。 目前这是我的代码:
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;
}
}
}
图像在窗口1中完美加载,但是当我按下按钮时,同一图像不会出现在窗口2中。
答案 0 :(得分:2)
您可以做的是让事件设置第二个窗口的内容,其他窗口的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 Name ="Window2">
<Grid>
<Image Source={Binding .} />
</Grid>
</Window2>
那应该是它。在更复杂的情况下,您将使用自定义类(ViewModel)并将其设置为内容而不是ImageSource,它将成为ViewModel类的一部分。