如何通过c#中的代码更改wpf中的资源

本文关键字:wpf 资源 代码 何通过 | 更新日期: 2023-09-27 18:28:47

拥有下一个XAML代码

<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;

如何通过c#中的代码更改wpf中的资源

请参考此答案。

试试这个,从文件中创建一个BitmapImage,并将其设置为ImageBrush的ImageSource

ImageBrush  img = (ImageBrush)this.FindResource("tile");
//change the imagesource in runtime,
img.ImageSource = new BitmapImage(new Uri("mad.png", UriKind.Relative));