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.Controls.Primitives; using System.Windows.Media; namespace FLY.ControlLibrary { /// <summary> /// 可以修改 On, Off 样式的ToggleButton /// </summary> public class ToggleButtonOnOff : ToggleButton { /// <summary> /// Off时的颜色 /// </summary> public static readonly DependencyProperty OffBrushProperty = DependencyProperty.Register("OffBrush", typeof(Brush), typeof(ToggleButtonOnOff)); /// <summary> /// On时的颜色 /// </summary> public static readonly DependencyProperty OnBrushProperty = DependencyProperty.Register("OnBrush", typeof(Brush), typeof(ToggleButtonOnOff)); /// <summary> /// Off时文字 /// </summary> public static readonly DependencyProperty OffLabelProperty = DependencyProperty.Register("OffLabel", typeof(string), typeof(ToggleButtonOnOff)); /// <summary> /// On时文字 /// </summary> public static readonly DependencyProperty OnLabelProperty = DependencyProperty.Register("OnLabel", typeof(string), typeof(ToggleButtonOnOff)); public ToggleButtonOnOff() { InitializeStyle(); } private void InitializeStyle() { var resources = new ResourceDictionary(); resources.Source = new Uri("pack://application:,,,/FLY.ControlLibrary;component/Themes/ToggleButtonOnOffStyle.xaml", UriKind.Absolute); //resources.Source = new Uri("/Themes/WindowBigCloseStyle.xaml", UriKind.Relative); this.Style = resources["ToggleButtonOnOffStyle"] as Style; } 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 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); } } } }