C# 无法访问wpf应用程序中放置在另一个程序集中的资源(映像)
我有一个WPF项目,它有一个指向另一个程序集的链接,该程序集中只有一些资源(即图像和样式)。此程序集的名称为Library.WPF.Resources 我无法访问资源程序集中的图像 在资源程序集中,我包含了一个名为but_close.png的图像,并将其属性设置为C# 无法访问wpf应用程序中放置在另一个程序集中的资源(映像),c#,.net,wpf,xaml,dll,C#,.net,Wpf,Xaml,Dll,我有一个WPF项目,它有一个指向另一个程序集的链接,该程序集中只有一些资源(即图像和样式)。此程序集的名称为Library.WPF.Resources 我无法访问资源程序集中的图像 在资源程序集中,我包含了一个名为but_close.png的图像,并将其属性设置为 build action= content copy to output directory = don't copy 在wpf应用程序中,我使用以下图像 <Button Canvas.Left="997" Canvas.T
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
我在十六进制编辑器中打开Library.WPF.Resources.dll并查找but_close.png,但在dll中找不到它
为什么图像不包含在dll中
我将资源项目中but_close.png的构建操作更改为资源。同样的问题,它不包括在dll中
已将此映像的生成操作更改为embeddedresource。现在它是在dll中,但当我运行应用程序时,仍然会发现找不到资源的错误
我的问题是:
1-资源程序集中的映像的正确生成操作是什么
2-为什么我可以访问另一个xaml页面中的映像?将生成操作设置为“资源”。
确保资源访问修饰符为“public”
按如下方式访问资源:
<Grid>
<Image Source ="pack://application:,,,/Library.WPF;component/Resources/but_close.png" Stretch="Fill"/>
</Grid>
生成操作必须设置为Resource
。然后重建所有内容。@Clemens:当我将构建操作设置为Resource时,我在dll中看不到我的映像。我在十六进制编辑器中打开了dll,查找but_close.png,但找不到它。@mans没关系。另外,您在project Library.WPF.Resources中有文件夹资源?@Clemens:有,但我正在使用包uri指向我的库程序集中的资源。@Clemens:我将资源项目中的映像目录移到了根目录,因此包uri为:pack://application:,,,/Library.WPF.Resources;component/Images/but\u close.png“我得到的是images/but_close.png无法找到。如何将资源访问修改器设置为public?右键单击项目。单击“属性”。在“资源”选项卡中,您会发现几个组合框,如“添加资源”和“访问修饰符”,您是否尝试过此解决方案?是的,我测试过,但不起作用。属性页中的资源是windoform属性,而不是wpf。
<Grid>
<Image Source ="pack://application:,,,/Library.WPF;component/Resources/but_close.png" Stretch="Fill"/>
</Grid>