【问题标题】:WPF Set Grid background to a resource imageWPF 将网格背景设置为资源图像
【发布时间】:2015-12-22 13:11:47
【问题描述】:

这很令人困惑,在 winforms 中这非常容易,但在 WPF 中这似乎是不可能的。

我需要将网格的背景设置为图像,我想应该很简单。

图像已设置为资源(右键单击项目名称 -> 属性 -> 资源选项卡 -> 导入现有文件)但是当我单击背景属性并选择瓷砖画笔时,它会将我指向文件导入到 Resources 文件夹中,这一直有效,直到应用程序从 Visual Studio 之外运行,它不起作用。

<Grid Width="550" Height="350">
    <Grid.Background>
        <ImageBrush ImageSource="Resources/CINTRA2016.png"/>
    </Grid.Background>

我在 XAML 中有上述代码,我该如何处理资源?我也试过&lt;ImageBrush ImageSource="pack://application:,,,/CINTRA 2016;CINTRA2016"/&gt;,但没用。

两个图像在解决方案资源管理器中都有一个资源构建操作

【问题讨论】:

  • Properties->Resources 不是在 WPF 中添加图像资源的常用方法。参见例如this answerthis one 获取正确方法。

标签: c# wpf background


【解决方案1】:

您的路径可能是错误的。尝试使用

<Grid Width="550"
      Height="350">
    <Grid.Background>
        <ImageBrush ImageSource="pack://application:,,,/WpfApplication1;component/Resources/CINTRA2016.png" />
    </Grid.Background>
</Grid>

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

【讨论】:

  • 哦,你必须有组件部分。感谢微软让另一个简单的任务变得愚蠢!
  • pack://application:... 前缀在 XAML 中通常不是必需的,因为默认情况下它是预先添加的。这解决了OP问题的事实必须有其他原因。如果图像文件已正确添加为 WPF 图像资源,则编写 ImageSource="Resources/CINTRA2016.png" 就足够了。就这么简单。
猜你喜欢
  • 1970-01-01
  • 2021-03-14
  • 1970-01-01
  • 2019-01-04
  • 2019-12-11
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多