2014-07-24 26 views
0

我是WPF的新手,正在努力學習儘可能多的關於它的知識。在使用winforms和之前,我使用資源系統將圖片添加到項目中。要調用的圖片然後我用:現在在WPF項目中處理圖片

Properties.Resouces.<Name of resource> 

,在WPF我想我會使用類似的東西,並添加圖片到項目的資源(只是爲了確保它們分佈與應用),但我有些不確定如何給他們打電話。例如,我試圖通過以下XAML更改表單的背景:

<Window.Background> 
     <ImageBrush> 
      <ImageBrush.ImageSource> 
       <BitmapImage UriSource="Resources\background.png"/> 
      </ImageBrush.ImageSource> 
     </ImageBrush> 
    </Window.Background> 

這顯然不起作用。如果我在URIsource中有完整的文件路徑,它可以工作,但我不想強制最終用戶使用特定的文件夾進行使用。

在這種情況下,將background.png作爲資源添加到項目中,並將設置爲「Copy to output directory」的設置設置爲「Copy if newer」。因此,我知道該圖片將在項目的根目錄下(Resources-folder ofc下),但我不知道如何與根文件夾關聯足夠靈活。這使我想到我的問題:

  1. 我該如何參考項目的路徑?在xaml和c#
  2. 這是處理這個問題的正確方法還是我的方式?

我想我已經附上所有必要的信息,如果我沒有,我很抱歉。林新的WPF,但我試圖學習。如果您要降級此問題,請留下評論。

在此先感謝, 戴夫

+0

默認情況下相對來源確實有效。 ImageBrush也有一個屬性ImageSource,如果可行的話也可以使用。 – pushpraj

+1

請參閱[本答案](http://stackoverflow.com/a/22957974/1136211)瞭解它如何在WPF中完成。 – Clemens

+0

看看這個包uri - 我已經使用過這個,但目前找不到示例... http://msdn.microsoft.com/en-us/library/aa970069(v=vs.110) .aspx –

回答

0

這是更常見到你的圖像添加到一個文件夾,假設在你的項目的根文件夾命名爲Images。您應該使用Visual Studio的添加現有項目命令,因爲它會正確設置構建動作複製到輸出目錄屬性爲您。一旦你添加您的圖像文件,你可以用這樣的string文件路徑簡單地引用他們:

<Image Source="pack://application:,,,/AppName;component/Images/ImageName.png" /> 

您可以瞭解更多有關的文件路徑語法從Pack URIs in WPF頁面上MSDN使用。

+0

謝謝先生! :) – Dave