在代码后台使用资源图像

7 浏览
0 Comments

在代码后台使用资源图像

我需要动态地更改应用于其中一个按钮的背景图像,但是无法弄清楚如何做到这一点。这些图像是添加到项目中的,并且它们的构建操作设置为资源。我尝试了以下方法:

buttonUnits.Background = new ImageBrush(new BitmapImage(new Uri("/Images/InchDOWN.png",UriKind.Relative)));

这个代码可以成功编译,但会出现DirectoryNotFoundException错误,提示"找不到路径'C:\Images\InchDOWN.png'的一部分"。

我不希望应用在磁盘上查找图像。我该如何将图像用作嵌入资源?我认为这涉及将构建操作更改为嵌入资源,但是在代码后面如何使用这个资源呢?

0
0 Comments

问题的原因:

在代码中使用资源图像时,必须将图像构建为资源,而不是嵌入的资源。资源是专门为WPF项目使用的。在过程化代码中使用资源图像需要使用pack Uri来引用图像,但是在代码中没有正确使用pack Uri,导致URI前缀未被识别的异常。

解决方法:

1. 将图像构建为资源,而不是嵌入的资源。

2. 在代码中使用pack Uri来引用图像。确保使用正确的pack Uri格式。

3. 使用XAML更容易设置图像,推荐使用XAML来处理图像相关的操作。

4. 如果需要更多关于pack Uri的信息,可以参考MSDN上的文章。

代码示例:

buttonUnits.Background = new ImageBrush(new BitmapImage(new Uri("pack://application:,,,/Images/InchDOWN.png")));

然而,如果您能明确说明您想要实现的目标,可能会发现不同的方法来解决您的多状态按钮问题。

0