WPF:“类型'String'的值无法转换为'System.Windows.Media.ImageSource'。”

时间:2009-03-31 19:14:25

标签: .net wpf image data-binding

我正在尝试设置WPF图像的来源。

XAML 有效:

<Image Name="ImageThing"
       Source="images/Thing.png"/>

Visual Basic 失败:

ImageThing.Source = "images/Thing.png"

...使用此例外

  

'String'类型的值不能   转换成   'System.Windows.Media.ImageSource'。

如何创建我需要的System.Windows.Media.ImageSource?


更新

此代码改编自MSDN example作品:

Dim bmp As New BitmapImage()
bmp.BeginInit()
bmp.UriSource = New Uri("images/Thing.png", UriKind.Relative)
bmp.EndInit()
ImageThing.Source = bmp

5 个答案:

答案 0 :(得分:11)

WPF使用隐式类型转换器将xaml字符串转换为期望的类型。在代码中,您通过对象类型静态绑定...如果查看example here,它将显示如何将source属性设置为以编程方式从本地uri生成的BitmapImage。

答案 1 :(得分:6)

你可能需要做这样的事情

Uri i = new Uri("images\\Thing.png");

请记住,您需要使用\而不是/用于Windows文件系统

看看here

答案 2 :(得分:5)

它比以上更容易:

ImageThing.Source = New BitmapImage(New Uri("images/Thing.png", UriKind.Relative))

答案 3 :(得分:1)

只需像这样更改xaml文件。

<Image Name="ImageThing">
    <Image.Source>
       <BitmapImage UriSource="images/Thing.png" />
    </Image.Source>
</Image>

答案 4 :(得分:-1)

怎么样?
Private Sub Google_Click(sender As Object, e As RoutedEventArgs)
    Mainbrowser.Navigate("http://www.contoso.com")