привязка источника изображения в XAML

Я пытаюсь связать источник изображения со своим XAML через c#

это работает

<Image Source="images/man.jpg"></Image>

это не работает

<Image Source="images/{Binding imagesource}"></Image>

где imagesource является строковой переменной в c# файле этого xaml и устанавливается равный "man.jpg"

8
задан nooob 29 July 2010 в 19:19
поделиться

2 ответа

Вы не можете вставить привязку в середине значения, подобного этому. Это либо привязка, либо нет. Предполагая, что источник изображения общедоступен через ваш DataContext , вы можете сделать это:

<Image Source="{Binding imagesource}"/>

Однако, если для него установлено значение «man.jpg», изображение не будет найдено. Либо установите в качестве источника изображения полный путь ("images / man.jpg"), либо используйте конвертер:

<Image Source="{Binding imagesource, Converter={StaticResource RelativePathConverter}}"/>

Конвертер добавит "images /" к его значению. Однако может потребоваться, чтобы преобразователь возвратил ImageSource , а не строку .

3
ответ дан 5 December 2019 в 21:15
поделиться

источник изображения должен быть фактическим объектом Image , а не строкой .

Вот метод, который создаст новый объект Image с заданным путем:

public BitmapImage Load(string path)
{
    var uri = new Uri(path);
    return new BitmapImage(uri);
}
0
ответ дан 5 December 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: