WPF图像外部资源

时间:2009-06-09 19:02:39

标签: c# wpf image external resources

我有一个带有资源字典的自定义控件库,该字典引用同一个自定义控件库中的图像。

然后我有一个WPF应用程序,它引用了自定义控件库,其中包含一个带有使用图像的样式的资源字典。

当我尝试使用外部资源的样式时,我收到一个错误,告诉我它无法找到样式中引用的图像。

我有一个示例解决方案,我可以发送任何需要它的人,但我希望那里有人知道答案......

谢谢, 亚伦

2 个答案:

答案 0 :(得分:2)

好的,这就是我发现的...... 如果您有一个带有样式的外部资源字典:

<Style x:Key="Arrow" TargetType="{x:Type Button}">
<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="{x:Type Button}">
      <StackPanel Orientation="Horizontal" Width="Auto" Height="20">
        <Image Source="/Images/RightArrow.png" />
      </StackPanel>
    </ControlTemplate>
  </Setter.Value>
</Setter>

并且图像位于外部程序集的Images文件夹中,当您处于开发环境中时,上述源代码引用工作正常,但是一旦引用程序集,RightArrow.png的相对路径将丢失到引用WPF应用。所以答案是使用以下内容来源:

        <Image Source="/Skin;component/Images/RightArrow.png" />

请注意选择URI而不是相对路径。这可以确保引用应用程序知道在哪里真正找到图像。

答案 1 :(得分:0)

在VS中将图像添加到项目时,它具有名为“复制到输出目录”的属性。将其值设置为“始终复制”或“如果更新则复制”。然后重建。我打赌这会解决它。