2015-07-03 98 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"; } 
}