在后面的代码中使用资源图像

我需要动态更改应用于我的一个按钮的背景图像,但无法弄清楚如何。 图像将添加到项目中,并将其“构建操作”设置为“资源”。 我试过以下:

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中,这样做要容易得多。

编辑

我在图像之前忘记了正斜杠,这可能是问题所在。 这是一篇关于包Uris的MSDN文章,如果您需要更多信息。

也许你应该发一个问题,说明你究竟想要完成什么,并希望发现你的多状态按钮问题的不同方法。