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
{
///
/// 可以修改 On, Off 样式的ToggleButton
///
public class ToggleButtonOnOff : ToggleButton
{
///
/// Off时的颜色
///
public static readonly DependencyProperty OffBrushProperty = DependencyProperty.Register("OffBrush", typeof(Brush), typeof(ToggleButtonOnOff));
///
/// On时的颜色
///
public static readonly DependencyProperty OnBrushProperty = DependencyProperty.Register("OnBrush", typeof(Brush), typeof(ToggleButtonOnOff));
///
/// Off时文字
///
public static readonly DependencyProperty OffLabelProperty = DependencyProperty.Register("OffLabel", typeof(string), typeof(ToggleButtonOnOff));
///
/// On时文字
///
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);
}
}
}
}