2015-07-03 126 views
0

我無法獲取圖像以顯示在我的窗口中。WPF C#無法通過源代碼綁定獲取圖像

我想綁定源代碼,但問題似乎更深入。

我有這兩條線:

<Image Grid.Column="1" Grid.Row="1" Source="{Binding EnemyImagePath}" /> 
<TextBlock Text="{Binding EnemyImagePath}" Grid.Column="0" Grid.Row="1" /> 

文本框是顯示正是我希望它。 (/RSClick;component/Images/Enemies/001.png)。但是,圖像並沒有顯示出來。

我繼續在XAML改變形象,這樣的:

<Image Grid.Column="1" Grid.Row="1" Source="Images/Enemies/001.png" /> 

,一旦我做了,圖像顯示出來。 (我從屬性面板中選擇了這個來源)。我已將圖像設置爲Embedded資源並始終複製 - 並且我已經仔細檢查了它是在我的項目的BIN文件夾中使用正確的文件夾結構創建的。

當我運行程序時,如上圖靜態設置,圖像不會顯示程序運行時。它將,但是,通常表現出自身的設計中......

謝謝:)

+1

的類型'Source'財產是'ImageSource',不'string'。能夠在XAML中輸入路徑是一個方便的捷徑,但是如果要使用綁定,則必須自己加載映像並將其通過屬性公開給綁定系統。 –

+1

請參閱[這個答案](http://stackoverflow.com/a/2574082/1997232)。 – Sinatr

+1

@PieterWitvoet即使在WPF數據綁定中,這也不是真的,String或Uri或byte []屬性值將由內置類型轉換器(ImageSourceConverter)自動轉換。此功能不限於XAML,因爲它不是由XAML Parser提供的。 – Clemens

回答

0

您提供的路徑被稱爲Pack URI。 使用Pack URI時,必須將構建動作設置爲Resource

0

你可以試試這個

<Image Source="{Binding ImgPath}" /> 

public string ImgPath 
{ 
    get { return "pack://application:,,,/AssemblyName;component/Images/image_to_use.png"; } 
}