2008-11-10 57 views
6

我試圖做到這一點...在WPF中,如何使用XAML指定嵌套在目錄中的文件的路徑?

<Image x:Name="imgGroupImage" Source="Images\unlock.png" Margin="0,0,5,0" /> 

,但我得到這個錯誤...

無法在屬性「源」轉換字符串「形象\ unlock.png」到的對象鍵入'System.Windows.Media.ImageSource'。找不到資源'forms/images/unlock.png'。錯誤的對象標記文件「保險絲;組件/表格/ mainwindow.xaml」 System.Windows.HierarchicalDataTemplate'線位置273 51.

正如你看到的,我的形式包括該XAML是一個文件夾中命名錶單。我的圖像位於名爲Images的文件夾中。如何從「表單」映射到「圖像」?我試過Source="..Images\unlock.png",它不能在WPF中工作。

任何幫助?

回答

9

嘗試斜線而不是反斜線,並通過以斜線領先使用絕對路徑:

Source="/Images/unlock.png" 

這通常爲我工作。

如果沒有,請看Pack URIs

+1

DOH!那太容易了。謝謝! – Doug 2008-11-10 20:07:35

0

您是否嘗試將源設置爲BitmapImage

<Image x:Name="imgGroupImage" Margin="0,0,5,0" > 
    <Image.Source> 
     <BitmapImage UriSource="Images/unlock.png" /> 
    </Image.Source> 
</Image> 

我相信UriUriSource默認類型是一個相對Uri,其工作方式關閉該應用程序的基類。您可能會發現,您可以配置BitmapSource比試圖找到在Source屬性中輸入文件路徑的確切方式要容易一些。

5
  1. 圖像添加到項目中VS
  2. 右鍵點擊該圖像unlock.png
  3. 轉到上下文菜單/屬性
  4. 更改生成操作資源

多數民衆贊成它:-)

0

爲了使用資源位於不同的文件夾一個在您的XAML是,這樣做:

<Image Source="pack://application:,,,/Resources/image.png"/> 

資源是您要使用的資源從和image.png是圖像顯示名稱目錄的名稱。回答發現感謝@ matt-hamilton和@ brian-hinchey以及他們對Pack URI的提及。
與您自己的轉換器完美協作。你只需要返回上面的字符串匹配模式。

相關問題