关闭

wpf DependencyProperty

标签: C# WPF
169人阅读 评论(0) 收藏 举报
分类:
 /// <summary>
    /// 点击一下换一个文字的按钮
    /// </summary>
    public partial class ClickChangeLable


    {


        public static readonly DependencyProperty MyTextProperty = DependencyProperty.Register("MyText", typeof(string), typeof(ClickChangeLable)
            , new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender, new PropertyChangedCallback(MyTextBoxChandedCallBack))
            );


        private static void MyTextBoxChandedCallBack(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
           
        }




        public string MyText
        {
            get
            {
                return (string) GetValue(MyTextProperty); 
                
            }
            set
            {
                ValueShow.Text = value;
                
                SetValue(MyTextProperty,value);
            }


        }






      


 


      
        private List<string> _userContent;
        private List<string> _contents;
        private int i = 0;
        public ClickChangeLable()
        {
            InitializeComponent();
            _contents = new List<string>()
            {
                
                "年",
                "月",
                "日"
            };
            //绑定点击事件
            MouseUp += OnMourseClick;
            MouseLeftButtonDown += OnMouseLeftButtonDown;
            MouseLeftButtonUp += OnMouseLeftButtonUp;




        }


        private void OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            Label.Background = Brushes.DodgerBlue;
        }


        private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {


            Label.Background = Brushes.DeepSkyBlue;
        }


        /// <summary>
        /// 提供接口给用户自己定义Content
        /// </summary>
        public List<string> UserContent
        {
            get { return _userContent; }
            set { _userContent = value; }
        }
        
        public string UnitText
        {
            get
            {
                return Label.Content.ToString();
                
            }
            set
            {
                Label.Content = value;
                
            }
        }


        //public string MYText
        //{
        //    get { return ValueShow.Text; }
        //    set
        //    {
        //        text = value;
        //        ValueShow.Text = text;
        //    }


        //}


        /// <summary>
        /// 鼠标点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnMourseClick(object sender, MouseButtonEventArgs e)
        {
             
            i++;
            //确保不会越界
            int index = i % _contents.Count;
            //如果用户自己没有定义content
            if (UserContent == null)
                Label.Content = _contents[index];
            else
                Label.Content = UserContent[index];


        }
        /// <summary>
        /// 获取当前选中的值
        /// </summary>
        /// <returns></returns>
        public string GetText()
        {
            return Label.Content.ToString();
        }




        
    }
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:811次
    • 积分:50
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档