2009-08-07 152 views
0

我有一個鼠標按下事件的控件,其中Id在點擊圖像時喜歡點擊圖像。但我似乎無法改變事件中的任何圖像屬性。WPF,Image MouseDown事件

事件

private void Image_MouseDown(object sender, MouseButtonEventArgs e) 
    { 
     BitmapImage bitImg = new BitmapImage(); 
     bitImg.BeginInit(); 
     bitImg.UriSource = new Uri("./Resource/Images/Bar1.png", UriKind.Relative); 
     bitImg.EndInit(); 

     ((Image)sender).Source = null; 
     ((Image)sender).Width = 100; 
     ((Image)sender).Visibility = Visibility.Hidden; 
    } 

事件確實火了,就連.Visibility屬性不改變的圖像,並隱藏它。

我在做什麼錯?

回答

1

假設文件在您的應用程序,您需要使用Pack URI scheme

 var img = sender as Image; 
     BitmapImage bmp = new BitmapImage(new Uri("pack://application:,,,/Resources/Images/Bar1.png")); 
     img.Source = bmp; 

在上面的例子中,這將表明在資源/圖片的項目的子文件夾。

+0

嗯 不過並沒有改變,我有一個文件夾/Images/Bar1.pgn在Bar1.png並其屬性設置爲資源 如果我deliberatly拼小姐的形象barx.png和exeption拋出說它不能找到它,所以我知道它在資源中找到它...只是不實際更新圖像到新的 – PrimeTSS 2009-08-07 15:06:28

+0

再次看着你的代碼,你是源代碼設置爲null。我沒有看到你將BitmapImage應用到Source的位置? – 2009-08-07 15:13:15

+0

APPOLOGIES !!!!!!!!我發現了爲什麼。 我在這個控件上有兩個模板,一個是「Selected」模板,我沒有在這個模板上設置鼠標按下事件。 即使事件發生,我認爲選定的模板寫了非選定的模板,可能chnaged位圖,但沒有活足夠長的時間顯示,並被選定的模板覆蓋..... Thankyou! – PrimeTSS 2009-08-07 15:14:47