// ----------------------------------------------------------------------- // // Copyright 2014 MIT Licence. See licence.md for more information. // // ----------------------------------------------------------------------- namespace Perspex.Controls.Primitives { using System; using Perspex.Interactivity; public class ToggleButton : Button { public static readonly PerspexProperty IsCheckedProperty = PerspexProperty.Register("IsChecked"); static ToggleButton() { Control.PseudoClass(IsCheckedProperty, ":checked"); } public ToggleButton() { } public bool IsChecked { get { return this.GetValue(IsCheckedProperty); } set { this.SetValue(IsCheckedProperty, value); } } protected override void OnClick(RoutedEventArgs e) { this.Toggle(); } protected virtual void Toggle() { this.IsChecked = !this.IsChecked; } } }