using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; namespace Compdfkit_Tools.Common { public class HomePageButton : Button { public static readonly DependencyProperty IsToggledProperty = DependencyProperty.Register("IsToggled", typeof(bool), typeof(HomePageButton), new PropertyMetadata(false)); public bool IsToggled { get { return (bool)GetValue(IsToggledProperty); } set { SetValue(IsToggledProperty, value); } } public static readonly DependencyProperty CanChangeProperty = DependencyProperty.Register("CanChange", typeof(bool), typeof(HomePageButton), new PropertyMetadata(true)); public bool CanChange { get { return (bool)GetValue(CanChangeProperty); } set { SetValue(CanChangeProperty, value); } } public static readonly RoutedEvent ToggledEvent = EventManager.RegisterRoutedEvent("Toggled", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(HomePageButton)); public event RoutedEventHandler Toggled { add { AddHandler(ToggledEvent, value); } remove { RemoveHandler(ToggledEvent, value); } } public HomePageButton() { Click += HomePageButton_Click; ; } private void HomePageButton_Click(object sender, RoutedEventArgs e) { if (CanChange) { IsToggled = !IsToggled; RaiseToggledEvent(); } } private void RaiseToggledEvent() { RoutedEventArgs newEventArgs = new RoutedEventArgs(HomePageButton.ToggledEvent); RaiseEvent(newEventArgs); } } }