2012-02-16 114 views
0

我需要從代碼後面添加控件的背景圖像。也就是說,我寫了下面:BitmapImage.UriSource howto

BitmapImage tmp = new BitmapImage(); 
    tmp.BeginInit(); 
    tmp.UriSource = new Uri(@"../images/card.png", UriKind.Relative); 
    tmp.DecodePixelWidth = 240; 
    tmp.EndInit(); 
    this.bg.Source = tmp; 

的問題是,我不能夠得到開放的源權。該項目的結構如下所示:images文件夾位於根目錄級別(比如與資源一級相同),並且card.png將其構建操作設置爲「資源」,並始終複製到輸出文件夾。我的課程在另一個文件夾中,與「圖片」相同。我錯過了什麼?謝謝。

回答

2

我認爲問題是你們班的位置....如果你的類是不是有根的位置,那麼你必須使用下面的代碼...

new Uri(@"../images/card.png", UriKind.Relative) 

注:「../」可能這取決於你的類地而異....

+0

你是對的;我會編輯我的問題。但是,它也沒有工作。 – Tilvia 2012-02-16 17:23:18

+0

確保按照確切的案例....對於文件夾和圖像名稱 – Bathineni 2012-02-16 17:29:03

1

你可以找到的選項的完整列表中MSDN, 我個人更喜歡用這兩個絕對路徑格式:

對於嵌入DED資源(在當前組件):

"pack://application:,,,/Subfolder/ResourceFile.xaml" 

對於安裝文件夾資源:

"pack://siteoforigin:,,,/Subfolder/SOOFile.xaml" 

獲得更多選項參見MSDN link

+0

對不起,沒有成功。無論如何,我正在檢查鏈接。 – Tilvia 2012-02-16 17:34:34

+0

@Tilvia a。當您在解決方案資源管理器中選擇png文件並檢查其屬性時,「生成操作」和「複製到輸出目錄」的值是什麼?灣什麼是包含該控件的程序集的程序集名稱以及包含資源的程序集(png)是什麼? C。從解決方案文件夾到每個項目的路徑是什麼? d。其項目文件夾中的png路徑是什麼? – 2012-02-16 18:46:56

2

我找過很多次,一個完整的包URI是有點多,並且簡化烏里作品一樣好,如果不是更好

Uri imageUri = new Uri("/namespace;component/images/card.png", UriKind.RelativeOrAbsolute);