WPF如何将网格背景设置为资源图片

4
这很令人困惑,在WinForms中这非常容易,但在WPF中似乎不可能。
我需要将网格的背景设置为图像,我以为这很简单。
该图像已被设置为资源(右键单击项目名称->属性->资源选项卡->导入现有文件),但是当我点击背景属性并选择平铺画刷时,它会指向导入到资源文件夹中的文件,这在从Visual Studio外部运行应用程序时有效,但在其中无效。
<Grid Width="550" Height="350">
    <Grid.Background>
        <ImageBrush ImageSource="Resources/CINTRA2016.png"/>
    </Grid.Background>

我在XAML中有上述代码,如何使用资源?我也尝试了<ImageBrush ImageSource="pack://application:,,,/CINTRA 2016;CINTRA2016"/>但没有成功。

在解决方案资源管理器中,这两个图像的构建操作均为Resource。


2
在WPF中,Properties->Resources不是添加图像资源的常规方式。请参见例如此答案此答案以获取正确的方法。 - Clemens
1个回答

5
你的路径可能有误。尝试使用正确的路径。
<Grid Width="550"
      Height="350">
    <Grid.Background>
        <ImageBrush ImageSource="pack://application:,,,/WpfApplication1;component/Resources/CINTRA2016.png" />
    </Grid.Background>
</Grid>

其中WpfApplication1是你的项目名称,Resources是包含图片的文件夹。


哦,你必须在其中包含组件部分。感谢微软让另一个简单的任务变得愚蠢! - Neo
“pack://application:...”前缀在XAML中通常是不必要的,因为它默认会被添加。这个解决了 OP 的问题一定有其他原因。如果图像文件已经被正确添加为 WPF 图像资源,则只需编写 “ImageSource=”Resources/CINTRA2016.png“” 即可。非常简单。 - Clemens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接