我有一个带有资源字典的自定义控件库,该字典引用同一个自定义控件库中的图像。
然后我有一个WPF应用程序,它引用了自定义控件库,其中包含一个带有使用图像的样式的资源字典。
当我尝试使用外部资源的样式时,我收到一个错误,告诉我它无法找到样式中引用的图像。
我有一个示例解决方案,我可以发送任何需要它的人,但我希望那里有人知道答案......
谢谢, 亚伦
答案 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中将图像添加到项目时,它具有名为“复制到输出目录”的属性。将其值设置为“始终复制”或“如果更新则复制”。然后重建。我打赌这会解决它。