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

Zac*_*son 6 .net data-binding wpf image

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

XAML的工作原理:

<Image Name="ImageThing"
       Source="images/Thing.png"/>
Run Code Online (Sandbox Code Playgroud)

Visual Basic失败:

ImageThing.Source = "images/Thing.png"
Run Code Online (Sandbox Code Playgroud)

......有这个例外:

"String"类型的值无法转换为"System.Windows.Media.ImageSource".

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


更新

此代码改编自MSDN示例:

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

Qui*_*son 11

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


Cod*_*313 6

你可能需要做这样的事情

Uri i = new Uri("images\\Thing.png");
Run Code Online (Sandbox Code Playgroud)

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

看看这里


cjb*_*rth 5

它可以比上面更容易:

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