Привязка изображения к кнопке
Я пытаюсь показать изображение внутри кнопки (UWP). Когда я шагаю через код, все объекты создаются правильно, и событие Raise вызывается для обновления страницы XAML - однако изображение не отображается.
В этом примере текстовое содержимое устанавливается на первой кнопке - так что я знаю, что привязка к моему объекту работает.
2-я кнопка с жестко закодированной ссылкой на актив показывает изображение.
Проблема в том, что 3-я кнопка ничего не показывает, хотя я вижу, что XAML вызывает myimage get.
Файл MainPage.язык XAML
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Button Grid.Row="0" Name="Button1" Content="{Binding myText}"/> <Button Grid.Row="1" Name="Button2"> <Image Source="/Assets/windows-sdk.png"/> </Button> <Button Grid.Row="2" Name="Button3"> <Image Source="{Binding myImage}"/> </Button> </Grid>
файл MainPage.язык XAML.в CS
sealed partial class MainPage : Page { myViewModel aViewModel; public MainPage() { this.InitializeComponent(); aViewModel = new myViewModel(); this.DataContext = aViewModel; } }
myViewModel. cs
class myViewModel : INotifyPropertyChanged { BitmapImage anImage; string someText; public BitmapImage myImage { get { return anImage; } } public string myText { get { return someText; } } public event PropertyChangedEventHandler PropertyChanged; public void RaiseProperty(string name) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); public myViewModel() { someText = "Some Text"; RaiseProperty("myText"); anImage = new BitmapImage(new Uri("ms-appx:/MyAssembly/Assets/windows-sdk.png")); RaiseProperty("myImage"); } }
Что я уже пробовал:
Я попытался вернуть строку / uri вместо растрового изображения.
Afzaal Ahmad Zeeshan
Второй подход также хорош, согласно моим мыслям.
Однако вы также можете передать элемент Image — Image control, а затем привязать его к кнопке.
Rodimus74
Спасибо за ваш ответ. Я использовал кнопку 1 & 2 в качестве примера - это номер 3, который я хочу заставить работать, чтобы я мог динамически изменять изображение.
Не могли бы вы предоставить более подробную информацию о предлагаемом вами решении?
Спасибо.