使用椭圆模板单击时,将图像从播放更改为暂停

我有一个播放按钮,我想改变背景图像,所以当点击时看起来像一个暂停按钮,我已经看到很多指南如何做到这一点,但我的Ellipse模板似乎使我的代码与我研究的任何东西都有很大的不同。 这是我的代码:

  

ToggleButton解决方案(在其他用户的回答中建议)可能最适合您。 尽管如此,我还是为了完整性而发布了另一种方法。

XAML:

   

代码隐藏:

 using System.ComponentModel; using System.Windows; namespace WpfTestBench { public partial class PlayButton { public PlayButton() { InitializeComponent(); DataContext = new SampleContext(); } private void Button_OnClick(object sender, RoutedEventArgs e) { var context = DataContext as SampleContext; if (context == null) return; context.IsPlaying = !context.IsPlaying; } } public class SampleContext : INotifyPropertyChanged { private bool _isPlaying; public bool IsPlaying { get { return _isPlaying; } set { if (_isPlaying == value) return; _isPlaying = value; OnPropertyChanged("IsPlaying"); } } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { var handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); } } } 

转换器:

 using System; using System.Globalization; using System.Windows; using System.Windows.Data; using System.Windows.Markup; namespace WpfTestBench { public class BoolToVisibilityConverter : MarkupExtension, IValueConverter { private static BoolToVisibilityConverter _instance; #region IValueConverter Members public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var visibility = Visibility.Hidden; if (parameter != null) visibility = (Visibility)parameter; return visibility == Visibility.Visible ? (((bool)value) ? Visibility.Visible : Visibility.Hidden) : (((bool)value) ? Visibility.Hidden : Visibility.Visible); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } #endregion public override object ProvideValue(IServiceProvider serviceProvider) { return _instance ?? (_instance = new BoolToVisibilityConverter()); } } } 

我认为你应该使用ToggleButton(一个具有已检查和未检查状态的按钮),并且有一个触发器,当选中该按钮时,它会更改其模板(或只是背景的imagesource)。