WPF: «Значение типа« Строка »не может быть преобразовано в« System.Windows.Media.ImageSource »». - PullRequest
6 голосов
/ 31 марта 2009

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

XAML работает:

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

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

ImageThing.Source = "images/Thing.png"

& hellip; с этим исключением :

Значение типа '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

Ответы [ 5 ]

11 голосов
/ 31 марта 2009

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

6 голосов
/ 31 марта 2009

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

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

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

Взгляните здесь

5 голосов
/ 04 апреля 2011

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

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

1 голос
/ 18 августа 2011

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

<Image Name="ImageThing">
    <Image.Source>
       <BitmapImage UriSource="images/Thing.png" />
    </Image.Source>
</Image>
0 голосов
/ 02 ноября 2015

А как же

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