WPF--用户控件(依赖属性)

用户控件?

  • 将对各现有得控件组合成一个可重用得组
  • 不能使用样式和模板
  • 继承自UserControl类

可以理解为就是将目前你的控件组合组合成一个新的控件,方便复用。


实例:
  思考过程:
在这里插入图片描述
  可以看一下页面的组成。
在这里插入图片描述

  最开始使用用户控件,是因为有一个背景图或者提示等重复出现,如果每次在xaml页面写重复代码太多,所以将这些重复出现得背景图呀之类得做成了用户控件,哪里需要拖到哪里。只需要一行代码就可以了。但是像背景图这些是死的。为什么说是死的呢?

在这里插入图片描述
  比如这个用户控件,其实就是背景图一样,但是当我想动态修改其提示内容是不行得。也就是光看不能用。虽然能够解决我们当前背景重用的问题,貌似是灵活了本质上还是死板的。
左半部分的构成是一样的,是不能按照背景图处理的。因为具体值是不同的。这就需要用到依赖属性。


  依赖属性:

官网解释


  使用:
  为用户控件添加依赖属性。比如我的。依旧先看构成:
  在这里插入图片描述三个textblock控件是需要后期能动态修改的。也就是需要添加依赖属性。此处需要添加Text属性。因为有三个所以命名不一样,但本质上是添加text属性以方便后期动态该值。

在这里插入图片描述

    public static readonly DependencyProperty myPersonbelongingsText = DependencyProperty.Register("MyPersonbelongingsText", typeof(string), typeof(PersonbelongingsText), new PropertyMetadata("TextBlock", new PropertyChangedCallback(OnTextChanged)));
        public string MyPersonbelongingsText
        {
    
    
            get {
    
     return (string)GetValue(myPersonbelongingsText); }
            set {
    
     SetValue(myPersonbelongingsText, value); }
        }
        static void OnTextChanged(object sender, DependencyPropertyChangedEventArgs args)
        {
    
    
            PersonbelongingsText source = (PersonbelongingsText)sender;
            source.acceptText.Text = (string)args.NewValue;
        }

  这样我们就增加一个名为MyPersonbelongingsText的属性。


  代码解析:
在这里插入图片描述  这样就可以后期改动了~


  使用实例:
在这里插入图片描述
     步骤描述:

  1. 在用户控件中选择使用的控件
  2. 调整控件大小位置
  3. 修改后期需要改动的。我这里使用TitleText来标识textblock1,所以可以发现当写入TitleText时textblock1被修改。(textblock1表示构成实例里面的1)

  使用用户控件与未使用用户控件对比:
在这里插入图片描述
  原本我的矩形框与textblock写了一个样式,如果不写样式还需要多三行。而使用用户控件一行就可以,而且很灵活。


  如何赋值:
  前面的动图实例了如何修改像1.3的情况(1,3具体指向请看本章前面的控件构成图片)像2这种作为接收的怎么办呢?
   其实就把它当成普通控件就好了,给控件命名,找到属性名,赋值就好

猜你喜欢

转载自blog.csdn.net/weixin_41851906/article/details/103657152