This question already has an answer here:
How do I change an image source dynamically from code-behind in WPF with an image in Properties.Resources?

(1 个回答)


4年前关闭。




我使用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")));

但老实说我无法弄清楚如何使用@“pack ... etc”我尝试过这样的事情
@"pack://Info Collector:,,,/myapp;component/resources/backGround.png")));

但我再次找不到任何解释这条线的好资源。

先谢谢了。

最佳答案

Pack URL 可以让您访问位于正在执行的应用程序域中的文件。你总是不理会第一部分:

pack://application:,,,/

之后,您将程序集的名称后跟分号。如果资源在 using 程序集中,则只需放置分号即可。然后你把:
component/

后跟资源的“文件夹路径”。把它们放在一起,你会得到类似的东西:
pack://application:,,,/<assemblyName>;component/<pathToResource>

请注意,您的文件需要以这种方式找到“资源”的构建操作。可以在 MSDN 上找到更完整的 Pack URI 解释

关于C# WPF 窗口背景,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41050686/

10-13 02:39