我有一个应用程序根据环境状态显示不同的背景图像,此应用程序通过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));
图像配置为构建操作=无,复制到输出目录=复制如果较新。
答案 0 :(得分:2)
更好地将图像加载为嵌入资源。
将Build Action设置为Resource(并且不要复制到输出目录),并通过Resource Pack URI加载它:
imgBackground.ImageSource = new BitmapImage(
new Uri("pack://application:,,,/Resources/Background.png"));