Как видите, для фона используется изображение под названием kingscross.jpg.Я пытаюсь сделать так, чтобы нажатие кнопки «Следующий ответ» привело к изменению фона сетки на изображение с именем SKV_8915_s.jpg.
. По вашему требованию вы можете установить ImageBrush
дляСвойство Background для Grid, затем свяжите ImageSource
со свойством bool, как показано ниже.И используйте конвертер для передачи различного изображения для каждого типа bool.
<Grid>
<Grid.Background>
<ImageBrush ImageSource="{x:Bind Resault,Converter={StaticResource IMConverter},Mode=OneWay}" Stretch="UniformToFill"/>
</Grid.Background>
<Button Content="Check" Click="Button_Click"/>
</Grid>
Код позади
public sealed partial class MainPage : Page, INotifyPropertyChanged
{
public MainPage()
{
this.InitializeComponent();
}
private bool _resault;
public event PropertyChangedEventHandler PropertyChanged;
private void onPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public bool Resault
{
get => _resault;
set
{
_resault = value;
onPropertyChanged();
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Resault = !Resault;
}
}
public class ImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return (bool)value ? new BitmapImage(new Uri("ms-appx:///Assets/bc1.jpg")) : new BitmapImage(new Uri("ms-appx:///Assets/bc2.jpg"));
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
И у меня есть пример кода на github, на который вы могли ссылаться.