2014-10-01 86 views
0

我目前正在開發一個默認的WPF控件包。 但我堅持在xaml中使用正確的uri類型。在dll中設置默認的xaml窗口背景圖像

我所擁有的圖像應該被用作我的窗口的非客戶區域的背景。 爲了使默認控件非常簡單,我想將所有內容都放在一個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 wic有時會導致XamlParseExeptions和其他不太好的東西。

謝謝你的任何提示:d

+1

嘗試使用此路徑:'pack:// application:,,,/ReferencedAssembly; component/Resources/WindowBackground.jpg'。 – Sheridan 2014-10-01 12:09:29

+0

不錯的嘗試,但它在編譯時無法找到該文件。輸出中顯示的文件路徑(無法找到)是正確的。 – 2014-10-01 12:16:18

+0

編譯4次後可以正常工作。寫下這個答案,我會接受它:)非常感謝你! – 2014-10-01 12:18:25

回答

0

你可以找到在Pack URIs in WPF頁MSDN上你的答案。爲了您的具體情況,你可以使用下面的語法來引用您的資源圖像文件:

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

從鏈接頁面:

下面的示例演示包URI因爲這是一個XAML資源文件位於引用程序集項目文件夾的子文件夾中。

包://應用:,,,/ReferencedAssembly;組件/子文件夾/ ResourceFile.xaml

注:此類型的資源文件是無關緊要的。