2015-01-13 136 views
0

我有一個包含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,當我按下按鈕。

回答

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)並將其設置爲內容,而不是將成爲ViewModel類的一部分的ImageSource。

相關問題