Для данного управления кнопками в Winrt я хочу динамически настроить его содержимое на изображение. Я бы подумал, что это будет очень просто:
_subjectFilePoster = new BitmapImage();
_subjectFilePoster.SetSource(t);
_btnPlayVideo.Content = _subjectFilePoster;
Но это не так, вместо этого я получаю кнопку с надписью Windows.Ui.Xaml.Media.Imaging.BitmapImage
написанной на нем.
Необходимо установить его Content
в <Image>
и <Image>
Source
для BitmapImage
_subjectFilePoster = new BitmapImage();
_subjectFilePoster.SetSource(t);
Image i = new Image();
i.Source = _subjectFilePoster;
_btnPlayVideo.Content = i;
Вот как я это делаю:
<Button x:Name="MyButton">
<Image Source="{Binding}" />
</Button>
С этим:
this.MyButton.DataContext = "http://server/image.png";
Почему это работает? Потому что вы используете конвертер родного типа в базовой платформе XAML. Это самый простой способ сделать это. Это, безусловно, работает. Я использую эту технику все время.
Вы можете сделать это следующим образом:
<Button>
<Image x:Name="MyImage" Source="{Binding}" />
</Button>
Затем с этим:
this.MyImage.DataContext = "http://server/image.png";
Это единственный способ? Нет. Это самый простой способ? Да.
Лучшее из обоих слов: привязка и код.
Удачи!