我需要动态更改应用于我的某个按钮的背景图像,但无法弄清楚如何。图像将添加到项目中,并将其“构建操作”设置为“资源”。我试过了以下内容:
buttonUnits.Background = new ImageBrush(new BitmapImage(new Uri("/Images/InchDOWN.png",UriKind.Relative)));
这成功编译,但会因DirectoryNotFoundException崩溃而导致“无法找到路径的一部分'C:\ Images \ InchDOWN.png'。”
我不希望应用在磁盘上查找图像。如何将图像用作嵌入式资源?我认为它涉及将构建操作更改为嵌入式资源,但如何在后面的代码中使用此资源?
答案 0 :(得分:8)
您必须将图像构建为资源 NOT 嵌入式资源。资源专门用于WPF项目。
在程序代码中使用它:
buttonUnits.Background = new ImageBrush(new BitmapImage(new Uri("pack://application:,,,/Images/InchDOWN.png")));
我建议在XAML中更容易做到这一点。
修改强>
我在图像之前忘记了正斜杠,这可能是问题所在。如果您需要更多信息,请参阅MSDN article about pack Uris。
也许你应该发一个问题,说明你究竟想要完成什么,并希望找到解决你的多状态按钮问题的不同方法。