TextBox, TextBlock, Lable
其中TextBox 和Lable均继承了Control类 可以对其进行模板编辑。
而TextBlock没有继承Control所以不能对其进行模板编辑
我的程序中需要做一个二级菜单,菜单项只需要显示文字,并且水平,垂直都居中,并且可以设置图片背景,并且对背景进行隐藏控制即可。
平时最常用的肯定是TextBlock 了,以为用它编辑模板,对背景做触发器进行动画控制,但发现其实TextBlock原来只可以编辑样式,不能对其编辑模板,转到定义到元数据,才发现:TextBlock : FrameworkElement, IContentHost, IAddChildInternal, IAddChild, IServiceProvider
原来TextBlock 直接继承了FrameworkElement 而并没有继承Controls
接下来想到的就是TextBox 将其背景,边框均进行设置也可以实现想要的效果,但是当调节文字的垂直居中时就不行了!
而且TextBox是可编辑的,虽然将其IsReadOnly属性设置成True 但还是有插入条。如果将IsEnable设置成false 样式就不可控制了!
最后只好改用Lable控件,它继承自Control可以对其进行模板编辑,而且,样式也容易设置,并且可以设置水平垂直居中!
只是Lable接受的不是Text属性。