我需要动态地更改应用于我的某个按钮的背景图像,但不知道如何更改。图像将添加到项目中,并将其生成操作设置为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。
也许你应该提出一个问题,说明你到底想完成什么,并希望能找到解决多状态按钮问题的不同方法。