2014-10-31 49 views
-2

具有下一個XAML代碼如何通過c#中的代碼更改wpf中的資源?

<Window.Resources > 
    <ImageBrush x:Key="tile" ImageSource="afraid.png" 
       Opacity=" 20" TileMode="Tile" 
       ViewportUnits="Absolute" 
       Viewport=" 0,0,32,32" 
       ></ImageBrush> 
</Window.Resources> 

我想用C#代碼來改變形象,在運行時

我有下面的代碼要做到這一點,但代碼不能正常工作&我不知道原因:

 ImageBrush img = (ImageBrush)this.FindResource("tile"); 
     ImageSourceConverter conv = new ImageSourceConverter(); 
     ImageSource src = (ImageSource)conv.ConvertFromString("mad.png"); 
     img.ImageSource = src; 
+0

它是如何「不工作」? – Default 2014-10-31 13:44:27

+0

http://i.imgur.com/msbdTzB.png – user2714376 2014-10-31 14:20:30

+0

它是'img',爲空嗎?你在哪裏做FindResource? – Default 2014-10-31 14:36:04

回答

0

請參閱this answer

試試這個,從文件創建一個BitmapImage並將其設置爲ImageBrush的ImageSource

ImageBrush img = (ImageBrush)this.FindResource("tile"); 

//change the imagesource in runtime, 
img.ImageSource = new BitmapImage(new Uri("mad.png", UriKind.Relative)); 
+0

我嘗試鱈魚,但沒有發生 – user2714376 2014-10-31 14:25:01

+0

它會拋出異常?路徑是否正確? – kennyzx 2014-10-31 14:34:51

+0

@Default我發現了一個類似的問題,請參閱我答案中的鏈接。正如它的建議,Uri路徑可能是錯誤的,因此找不到文件,但我不知道如何解決它。 – kennyzx 2014-10-31 16:03:35

相關問題