我在WPF应用程序(.net 5.0)中有一个图像控件,它在运行时显示图像,没有问题,但在设计器中不显示。
下面是XAML:
<Window>
<Grid x:Name="MainGrid"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
SnapsToDevicePixels="True">
<Grid.RowDefinitions>
<RowDefinition x:Name="BannerArea" Height="192"/>
<RowDefinition x:Name="MainArea" Height="2.5*"/>
</Grid.RowDefinitions>
<Border x:Name="BannerImageBorder" Grid.Row="0">
<Image x:Name="BannerBottonLayerImage"
Source="{DynamicResource BannerImageBackground}"
HorizontalAlignment="Left"
Width="1550"
SnapsToDevicePixels="True"
RenderOptions.BitmapScalingMode="HighQuality">
</Image>
</Border>
</Grid>
</Window>
<Window.Resources>
<BitmapImage x:Key="BannerImageBackground" UriSource="Resources\BannerImageBackground.png"/>
</Window.Resources>
我已经将“BannerImageBackground.png”的构建操作设置为“Resource”。
图像在运行时显示没有问题,而在设计器中消失。有趣的是,如果我更改XAML以强制语法错误,然后将其更改回来,则图像会重新出现在designer中,只有当我在VS中运行应用程序时才会再次消失。
到目前为止我所尝试的:
- 重命名图像的文件名和资源项名称,无效。
- 将图像移动到另一个文件夹,没有用。
- 将图像声明为边界“BannerImageBorder”的资源,并将源设置为静态资源,没有用。
- 将映像的构建操作设置为“内容”,并将“复制到输出目录”设置为“始终复制”,都没有用。
我的项目的目录路径不包含任何特殊字符。
我在网上搜索了一下,这是我能找到的其他人发布的最接近的问题:.Net Core 3: Image disappear in Designer after run,在那个线程中,Visual Studio团队说这个bug已经在VS 2019 16.5 Preview 2中修复了,但我使用的是16.11.26,但这个问题仍然存在。
我不知道是我做错了什么,还是只是一个bug?它当然不会阻止任何东西,但只是超级烦人。
先谢谢你了。
1条答案
按热度按时间ecr0jaav1#
更新:
我设法找到了一个可以接受的解决方法来解决我的问题,但我不确定它是否对您的问题有帮助。所有图像都存储在专用的
ResourceDictionary
文件中,然后通过App.xaml
引用该文件,这使得设计人员可以显示StaticResource
图像,而无需硬编码其路径。我已经修改了下面的代码,使其成为一个可重复性最低的示例,并希望您可以使用新的解决方案来验证您的问题是否仍然存在。如果这不起作用,那么指定绝对路径而不是使用
StaticResource
或相对路径对您来说是否正确?原文:
我还没有足够的声誉发表评论,但我相信我遇到了与您相同的问题,但配置明显不同。我无法看到的图像在设计师虽然在所有。我正在将Visual Studio 2022用于**.Net Framework 4.8**项目。
经过大量的研究,我只设法在设计器中显示图像时,图像源是一个URI或资源是在同一个文件中定义的资源是要使用的。以下三种解决方案都适用于运行时,但不适用于设计时的解决方案是我想要使用的解决方案。
不幸的是,无论我怎么努力,我也不能让它暂时显示出来。
更新代码:
设计器输出: