我有一个WPF项目,其中包含指向另一个程序集的链接,该程序集仅具有某些资源(即图像和样式)。该程序集的名称为Library.WPF.Resources。
我无法访问资源程序集中的图像。
在资源程序集中,我包含了一个名为but_close.png的图像,并将其属性设置为
build action= content
copy to output directory = don't copy
在WPF应用程序中,我按以下方式使用此图像。
<Button Canvas.Left="997" Canvas.Top="10" Width="16" Height="14" Style="{StaticResource TransparentButton}" x:Name="CloseWindow">
<Image >
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="pack://application:,,,/Library.WPF.Resources;component/Resources/Images/but_close.png"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/Library.WPF.Resources;component/Resources/Images/but_close_roll.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Button
在 WPF 应用程序中,当我查看包含此按钮的页面时,我没有发现任何问题(没有错误表明应用程序找不到它)。但是当我运行应用程序时,我会遇到以下错误:
{"Cannot locate resource 'resources/images/but_close.png'."}
我在十六进制编辑器中打开了Library.WPF.Resources.dll,并查找but_close.png,但是在dll中找不到它。
为什么这个图像没有包含在dll中?
我将资源项目中的but_close.png的构建操作更改为资源。同样的问题,它没有包含在dll中。
将此图像的构建操作更改为嵌入式资源。现在它在dll中,但是当我运行应用程序时,我收到无法找到资源的错误。
我的问题:
1- 资源程序集中图像的正确构建操作是什么?
2- 为什么我可以在另一个xaml页面中访问该图像?