我目前正在开发默认的WPF控件套件。 但我仍然坚持在xaml中使用正确的uri。
我所拥有的是一张应该用作窗口非客户区域背景的图像。 为了使默认控件非常容易,我想将所有内容都放在dll中。 其他应用程序可以快速引用该DLL并访问该样式。
问题是,在应用程序中使用dll样式时,我的图像没有显示。
我的图片(/Resources/WindowBackground.jpg)设置为资源,我使用以下xaml:
<Image Grid.ColumnSpan="99" Grid.RowSpan="99">
<Image.OpacityMask>
<ImageBrush ImageSource="pack://application:,,,/Resources/WindowBackground.jpg"/>
</Image.OpacityMask>
</Image>
我也尝试过:
<Image Grid.ColumnSpan="99" Grid.RowSpan="99" Source="/Resources/WindowBackground.jpg"/>
两者都将以下内容写入输出(几次):
... PresentationFramework.dll中的“System.IO.IOException”...
我还试过很多其他的uris,有时会导致XamlParseExeptions和其他不那么好的东西。
感谢您提供任何提示:D
答案 0 :(得分:0)
您可以在MSDN上的Pack URIs in WPF页面找到答案。对于您的特定情况,您可以使用以下语法来引用资源图像文件:
pack://application:,,,/ReferencedAssembly;component/Resources/WindowBackground.jpg
从链接页面:
以下示例显示了XAML资源文件的pack URI,该文件位于引用程序集的项目文件夹的子文件夹中。
pack:// application:,,, / ReferencedAssembly; component / Subfolder / ResourceFile.xaml
注意:此处的资源文件类型无关紧要。