gpt4 book ai didi

c# - 无法访问放置在 wpf 应用程序中另一个程序集中的资源(图像)

转载 作者:行者123 更新时间:2023-11-30 18:29:30 25 4
gpt4 key购买 nike

我有一个 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 的构建 Action 更改为资源。同样的问题,它不包含在 dll 中。

将此图像的构建操作更改为 embeddedresource。现在它在 dll 中,但是当我运行应用程序时,我仍然收到找不到资源的错误。

我的问题:

1- 资源集合中图像的正确构建操作是什么?

2- 为什么我可以访问另一个 xaml 页面中的图像?

最佳答案

将构建操作设置为“资源”。确保资源访问修饰符是“public”

像这样访问资源:

<Grid>
<Image Source ="pack://application:,,,/Library.WPF;component/Resources/but_close.png" Stretch="Fill"/>
</Grid>

关于c# - 无法访问放置在 wpf 应用程序中另一个程序集中的资源(图像),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22808736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com