我使用Resources.resx添加了一个png文件,它位于一个名为resources的文件夹中。 我正在尝试将主窗口背景更改为图像。
this.Background = Properties.Resources.backGround;
给出无法将System.Drawing.Bitmap类型隐式转换为System.Windows.Media.Brush
我试图遵循我发现的其他答案,例如
this.Background = new ImageBrush(new BitmapImage(new Uri(@"pack://application:,,,/myapp;component/Images/icon.png")));
但老实说,我无法弄清楚如何使用@"包...等等#34;我尝试过这样的事情
@"pack://Info Collector:,,,/myapp;component/resources/backGround.png")));
但我再也找不到任何解释这条线的好资源。
先谢谢你。
答案 0 :(得分:1)
包URL可以将您带到位于执行应用域内的文件。你总是单独留下第一部分:
pack://application:,,,/
之后,您将组件的名称后跟分号。如果资源在使用程序集中,则可以只使用分号。然后你把:
component/
后跟资源的“文件夹路径”。把它们放在一起就可以得到类似的东西:
pack://application:,,,/<assemblyName>;component/<pathToResource>
请注意,您的文件需要以这种方式找到“资源”的构建操作。可以在MSDN
上找到有关包URI的更完整说明