开源WPF控件库【Newbeecoder.UI】ToggleButton

92 篇文章 18 订阅
31 篇文章 7 订阅

在上一章讲了单选框样式,单选框继承于RadioButton。然后在自定义样式,RadioButton中需要把GroupName设置为同一组名称即可。

复选框实现原理同单选框相同,主要区别继承ToggleButton类实现多选功能,此类每个按钮是可以单独复选。

先看一下实现效果:

10a20feee3049b2235eb8678a7a7da68.png

增加几项依赖属性和单选框一样。这里就不再多介绍。

/// <summary>    /// 多选框    /// </summary>    public class NbCheckBox : NbToggleButton    {        #region ctor        static NbCheckBox()        {            DefaultStyleKeyProperty.OverrideMetadata(typeof(NbCheckBox), new FrameworkPropertyMetadata(typeof(NbCheckBox)));        }        /// <summary>        ///        /// </summary>        public NbCheckBox()        {            IsHitTestVisibleInChrome = true;        }        #endregion ctor        public Brush OptionMarkBackground        {            get { return (Brush)GetValue(OptionMarkBackgroundProperty); }            set { SetValue(OptionMarkBackgroundProperty, value); }        }        // Using a DependencyProperty as the backing store for OptionMarkBackground.  This enables animation, styling, binding, etc...        public static readonly DependencyProperty OptionMarkBackgroundProperty =            DependencyProperty.Register("OptionMarkBackground", typeof(Brush), typeof(NbCheckBox), new PropertyMetadata(Brushes.Transparent));        public bool ShowOptionMark        {            get { return (bool)GetValue(ShowOptionMarkProperty); }            set { SetValue(ShowOptionMarkProperty, value); }        }        // Using a DependencyProperty as the backing store for ShowOptionMark.  This enables animation, styling, binding, etc...        public static readonly DependencyProperty ShowOptionMarkProperty =            DependencyProperty.Register("ShowOptionMark", typeof(bool), typeof(NbCheckBox), new PropertyMetadata(true));        public double OptionMarkHeight        {            get { return (double)GetValue(OptionMarkHeightProperty); }            set { SetValue(OptionMarkHeightProperty, value); }        }        // Using a DependencyProperty as the backing store for ShowOptionMarkHeight.  This enables animation, styling, binding, etc...        public static readonly DependencyProperty OptionMarkHeightProperty =            DependencyProperty.Register("OptionMarkHeight", typeof(double), typeof(NbCheckBox), new PropertyMetadata(16d));        public double OptionMarkWidth        {            get { return (double)GetValue(OptionMarkWidthProperty); }            set { SetValue(OptionMarkWidthProperty, value); }        }        // Using a DependencyProperty as the backing store for ShowOptionMarkWidth.  This enables animation, styling, binding, etc...        public static readonly DependencyProperty OptionMarkWidthProperty =            DependencyProperty.Register("OptionMarkWidth", typeof(double), typeof(NbCheckBox), new PropertyMetadata(16d));    }

复选框样式代码如下:

e30b2b37e1777a4dbd9b9f2f2fabb428.png

复选功能就实现了,接下来就是调用代码示例:

07f73ebd631b5df3cbbb6b837afa72b2.png

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值