有很多关于在代码后台设置图像源的问题和答案,例如这个通过代码设置WPF图像源。
我按照所有这些步骤操作,但仍然无法设置图像。我使用VS2010中的WPF C#编码。我把所有的图像文件都放在一个名为“Images”的文件夹下,并将所有图像文件设置为始终复制。并且生成操作设置为资源,如文档所指示。
我的代码如下。我在XAML中设置了dog.png,然后在代码后台将其更改为cat.png。
// my XAML
<Image x:Name="imgAnimal" Source="Images/dog.png" />
// my C#
BitmapImage img = new BitmapImage();
img.UriSource = new Uri(@"pack://application:,,,/FooApplication;component/Images/cat.png");
imgAnimal.Source = img;
然后我得到了一个空的、空白的、毫无意义的图像。我不理解为什么.NET让设置图像变得如此复杂。 [编辑] 所以以下内容有效。
imgAnimal.Source = new BitmapImage(new Uri(@"pack://application:,,,/FooApplication;component/Images/cat.png"));
代码可以运行,但我看不出两个代码之间有任何区别。为什么之前的不起作用而后者却可以?对我来说,它们是一样的。