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
{
///
/// 带IsChecked 的button, 不能通过点击 使IsChecked改变
///
public class NoToggleButton : Button
{
///
/// 显示的状态
///
public static readonly DependencyProperty IsCheckedProperty = DependencyProperty.Register("IsChecked", typeof(bool), typeof(NoToggleButton));
///
/// Off时的颜色
///
public static readonly DependencyProperty OffBrushProperty = DependencyProperty.Register("OffBrush", typeof(Brush), typeof(NoToggleButton));
///
/// On时的颜色
///
public static readonly DependencyProperty OnBrushProperty = DependencyProperty.Register("OnBrush", typeof(Brush), typeof(NoToggleButton));
///
/// Off时文字
///
public static readonly DependencyProperty OffLabelProperty = DependencyProperty.Register("OffLabel", typeof(string), typeof(NoToggleButton));
///
/// On时文字
///
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);
}
}
}
}