WPF: "значение типа 'String' не может быть преобразовано в 'System.Окна.Сми.ImageSource'."

Я пытаюсь установить источник изображения WPF.

XAML работает:

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

Visual Basic не удается:

ImageThing.Source = "images/Thing.png"

С исключение:

значение типа String не может быть преобразовано в - Система.Окна.Сми.ImageSource'.

как создать систему.Окна.Сми.ImageSource, что мне нужно?


обновление

этот код взято из пример MSDN работает:

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

5 ответов


WPF использует неявный преобразователь типов для преобразования строки xaml в ожидаемый тип. В коде вы статически связаны типом объекта... Если вы посмотрите на пример он показывает, как установить свойство source в BitmapImage, который генерируется из локального uri программно.


вам, вероятно, нужно будет сделать что-то вроде этого

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

имейте в виду, что вам нужно использовать \ not a / для файловой системы windows

посмотреть здесь


Это может быть даже проще, чем выше:

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


просто измените файл xaml следующим образом.

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

насчет

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