在App启动时设置WPF窗口背景图像

时间:2015-02-25 23:01:56

标签: c# wpf

我有一个应用程序根据环境状态显示不同的背景图像,此应用程序通过Windows注册表(HKEY_CURRENT_USER)在用户登录时启动。
用户登录后,应用程序启动但后来崩溃,抱怨说图像的Uri无效。
值得注意的是,如果用户手动启动应用程序(即双击),则所有工作正常,并且相应的图像已成功加载。
图像配置为构建操作=无,复制到输出目录=复制如果较新

我的主窗口中的这个标记:

<Window.Background>
    <ImageBrush x:Name="imgBackground" ></ImageBrush>
</Window.Background>

然后在codebehind中我想设置相应的图像:

imgBackground.ImageSource = 
     new BitmapImage(new Uri(@"Resources\Background.png",UriKind.RelativeOrAbsolute));

图像配置为构建操作=无,复制到输出目录=复制如果较新

1 个答案:

答案 0 :(得分:2)

更好地将图像加载为嵌入资源。

将Build Action设置为Resource(并且不要复制到输出目录),并通过Resource Pack URI加载它:

imgBackground.ImageSource = new BitmapImage(
    new Uri("pack://application:,,,/Resources/Background.png"));