WPF,看下这个控件模板
为了搞清楚BorderThickness属性,剪辑了一段简单的Button模板:
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Border.BorderThickness">
<Setter.Value>
<Thickness>5,5,5,5</Thickness>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
问题:代码中设置BorderThickness时,写的是Border.BorderThickness,为什么要这么写呢?和直接写BorderThickness有什么区别吗?
我看到某个控件的标准模板中,有一部分就是这么写的
------解决方案--------------------你可以重新修改Button的控件模板,你修改的控件模板删除Border看看与原来的button控件对比下有什么区别的
------解决方案--------------------
Border代表边框了,BorderThickness代表
边框的粗细,然而BorderThickness代表
边框区域的尺寸,具体参考MSDN介绍了:http://msdn.microsoft.com/zh-cn/library/cc917851(v=VS.95).aspx 和 http://msdn.microsoft.com/zh-cn/library/system.windows.controls.border.borderthickness(v=VS.95).aspx
------解决方案--------------------你把 <Thickness>5,5,5,5</Thickness>改成 <Thickness>5,10,5,10</Thickness>看看有没有变化。
------解决方案--------------------
你把 <Thickness>5,5,5,5</Thickness>改成 <Thickness>5,10,5,10</Thickness>看看有没有变化。
有变化啊,上、下边框变粗了。为什么要写成Border.BorderThickness,不写成BorderThickness呢?
这就是了,5,10,5,10,这样写,可以分别控制边框的左、上、右、下的边框宽度。如果写成BorderThickness,则每条边框的宽度都是一样,没法分别控制。
------解决方案--------------------