我需要动态地更改应用于我的某个按钮的背景图像,但不知道如何更改。图像将添加到项目中,并将其生成操作设置为resource。我试过以下方法:

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

这将成功编译,但将崩溃,并显示DirectoryNotFoundException,显示“找不到路径'c:\ images\inchDown.png'的一部分”。
我不希望应用程序在磁盘上查找图像。如何将图像用作嵌入式资源?我认为这涉及到将构建操作更改为嵌入式资源,但如何在代码背后使用此资源?

最佳答案

您必须将映像构建为资源而不是嵌入资源。资源是wpf项目专用的。
在程序代码中使用它:

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

这在我推荐的xaml中要容易得多。
编辑
我在图片前忘了斜杠,这可能是问题所在。如果您需要更多信息,这里有一个MSDN article about pack Uris
也许你应该提出一个问题,说明你到底想完成什么,并希望能找到解决多状态按钮问题的不同方法。

08-27 20:58
查看更多