用户控件?
- 将对各现有得控件组合成一个可重用得组
- 不能使用样式和模板
- 继承自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的属性。
代码解析:
这样就可以后期改动了~
使用实例:
步骤描述:
- 在用户控件中选择使用的控件
- 调整控件大小位置
- 修改后期需要改动的。我这里使用TitleText来标识textblock1,所以可以发现当写入TitleText时textblock1被修改。(textblock1表示构成实例里面的1)
使用用户控件与未使用用户控件对比:
原本我的矩形框与textblock写了一个样式,如果不写样式还需要多三行。而使用用户控件一行就可以,而且很灵活。
如何赋值:
前面的动图实例了如何修改像1.3的情况(1,3具体指向请看本章前面的控件构成图片)像2这种作为接收的怎么办呢?
其实就把它当成普通控件就好了,给控件命名,找到属性名,赋值就好