WPF 自定义属性和触发器

本文介绍了如何创建一个名为MEFACheckBox的自定义WPF复选框控件,该控件带有三个状态并使用属性触发器改变文本显示。通过设置CheckValue属性,可以实现‘无’、‘错’、‘对’三种状态的切换,并在UI上用不同的符号(空格、√、×)表示。
摘要由CSDN通过智能技术生成
public class MEFACheckBox : CheckBox
    {

        //public enum CheckBoxSatus
        //{
        //    [Description("无")]
        //     None=-1,
        //    [Description("错")]
        //    error=0,
        //    [Description("对")]
        //    correct=1,
        //}
        public MEFACheckBox()
        {
            base.DefaultStyleKey = typeof(MEFACheckBox);
            base.IsThreeState = false;
            this.Click += MEFACheckBox_Click;
            CheckValue = "None";

        }
        public string CheckValue
        {
            get { return (string)GetValue(CheckValueProperty); }
            set { SetValue(CheckValueProperty, value); }
        }
        public static readonly DependencyProperty CheckValueProperty =
            DependencyProperty.Register("CheckValue", typeof(string), typeof(MEFACheckBox), <span style="color:#ff6666;">new UIPropertyMetadata("")</span>);
//这句话很重要不然触发器没用。
        static MEFACheckBox()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(MEFACheckBox), new FrameworkPropertyMetadata(typeof(MEFACheckBox)));

        }
        private void MEFACheckBox_Click(object sender, RoutedEventArgs e)
        {


            switch (CheckValue)
            {
                //空--对
                case "None":
                    CheckValue = "correct";
                    break;
                //错--空
                case "error":
                    CheckValue = "None";
                    break;
                //对--错
                case "correct":
                    CheckValue = "error";
                    break;
                default:
                 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值