2010-10-21 54 views
0

我试图使用Image控件是一个非常基本的方式,喜欢这里:在Silverlight使用图像控制(4)

http://www.silverlightshow.net/items/Using-the-Image-control-in-Silverlight-2-Beta-1.aspx

所以我结束了XAML这样的:

<Image x:Name="imgSmall" Stretch="Fill" Source="../Img/Small/105.jpg" Margin="10,0,0,0"></Image> 

哪一个不工作。该图片是空白,而在设计师的URI是强调与消息” ......是不是项目的一部分或其生成操作未设置为“资源”如果我改变源的属性

在我的ViewModel,这样设置:

new Uri(App.Current.Host.Source, "../Img/Small/105.jpg"); 

然后正常工作。我更愿意使用更简单的语法并直接获取图像。这可能吗?

(图像是从的ClientBin一个级别)

设置我所有的网站图片的建立=资源是不可能的。

谢谢!

回答

1

您必须创建一个采用相对图像路径并添加“绝对”部分的转换器。您可以将相对Uri作为绑定值或作为converterParameter传递。

class ImageConverter : IValueConverter 
{ 
    // method convert() 
    return new BitmapImage(new Uri(App.Current.Host.Source, ((string)parameter)); 
    //... 
} 
0

它的ID不起作用,因为图像没有添加到您的项目。 将图像添加到项目中,然后您可以设置来自xaml的源代码。