在dll中设置默认的xaml窗口背景图像

时间:2014-10-01 12:02:03

标签: wpf xaml dll uri

我目前正在开发默认的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

1 个答案:

答案 0 :(得分:0)

您可以在MSDN上的Pack URIs in WPF页面找到答案。对于您的特定情况,您可以使用以下语法来引用资源图像文件:

pack://application:,,,/ReferencedAssembly;component/Resources/WindowBackground.‌​jpg

从链接页面:

  

以下示例显示了XAML资源文件的pack URI,该文件位于引用程序集的项目文件夹的子文件夹中。

     

pack:// application:,,, / ReferencedAssembly; component / Subfolder / ResourceFile.xaml

注意:此处的资源文件类型无关紧要。