using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace FLY.ControlLibrary { /// <summary> /// 带IsChecked 的button, 不能通过点击 使IsChecked改变 /// </summary> public class NoToggleButton : Button { /// <summary> /// 显示的状态 /// </summary> public static readonly DependencyProperty IsCheckedProperty = DependencyProperty.Register("IsChecked", typeof(bool), typeof(NoToggleButton)); /// <summary> /// Off时的颜色 /// </summary> public static readonly DependencyProperty OffBrushProperty = DependencyProperty.Register("OffBrush", typeof(Brush), typeof(NoToggleButton)); /// <summary> /// On时的颜色 /// </summary> public static readonly DependencyProperty OnBrushProperty = DependencyProperty.Register("OnBrush", typeof(Brush), typeof(NoToggleButton)); /// <summary> /// Off时文字 /// </summary> public static readonly DependencyProperty OffLabelProperty = DependencyProperty.Register("OffLabel", typeof(string), typeof(NoToggleButton)); /// <summary> /// On时文字 /// </summary> public static readonly DependencyProperty OnLabelProperty = DependencyProperty.Register("OnLabel", typeof(string), typeof(NoToggleButton)); public NoToggleButton() { InitializeStyle(); } private void InitializeStyle() { var resources = new ResourceDictionary(); resources.Source = new Uri("pack://application:,,,/FLY.ControlLibrary;component/Themes/NoToggleButtonStyle.xaml", UriKind.Absolute); //resources.Source = new Uri("/Themes/WindowBigCloseStyle.xaml", UriKind.Relative); this.Style = resources["NoToggleButtonStyle"] as Style; } public static bool GetIsChecked(UIElement element) { return (bool)element.GetValue(IsCheckedProperty); } public static void SetIsChecked(UIElement element, bool isClecked) { element.SetValue(IsCheckedProperty, isClecked); } public static Brush GetOffBrush(UIElement element) { return (Brush)element.GetValue(OffBrushProperty); } public static void SetOffBrush(UIElement element, Brush brush) { element.SetValue(OffBrushProperty, brush); } public static Brush GetOnBrush(UIElement element) { return (Brush)element.GetValue(OnBrushProperty); } public static void SetOnBrush(UIElement element, Brush brush) { element.SetValue(OnBrushProperty, brush); } public static string GetOnLabel(UIElement element) { return (string)element.GetValue(OnLabelProperty); } public static void SetOnLabel(UIElement element, string onLabel) { element.SetValue(OnLabelProperty, onLabel); } public static string GetOffLabel(UIElement element) { return (string)element.GetValue(OffLabelProperty); } public static void SetOffLabel(UIElement element, string offLabel) { element.SetValue(OffLabelProperty, offLabel); } public bool IsChecked { get { return (bool)GetValue(IsCheckedProperty); } set { SetValue(IsCheckedProperty, value); } } public Brush OnBrush { get { return (Brush)GetValue(OnBrushProperty); } set { SetValue(OnBrushProperty, value); } } public Brush OffBrush { get { return (Brush)GetValue(OffBrushProperty); } set { SetValue(OffBrushProperty, value); } } public string OnLabel { get { return (string)GetValue(OnLabelProperty); } set { SetValue(OnLabelProperty, value); } } public string OffLabel { get { return (string)GetValue(OffLabelProperty); } set { SetValue(OffLabelProperty, value); } } } }