该虚线边框能被使用在任何带BorderBrush属性的控件,效果如下:
代码 1:
通用border style 定义,代码来自
https://stackoverflow.com/questions/6195395/how-can-i-achieve-a-dashed-or-dotted-border-in-wpf
这其实是wpf brush中一种功能强大的brush, tile brush, 从tile名字可知,主要可以用在图标/图片重复铺陈方面。当然在brush 的内容里也可以使用drawing 对象绘制定制化的图形。以上代码就是绘制了这样图形,因为 Viewport="0,0,8,8", ViewportUnits="Absolute" 指定了该图形将以8个有效像素来绘制,而不是50,50并没有大小的意义;而TileMode="Tile" 是指定了填充模式为重复铺陈。
因此,如果我使用该brush作为区域(区域面积远大于8,8)填充刷时,会是以下的效果:
作为border brush使用方式:
效果如贴图1。
原因是这样的:
因为在这里borderThickness =1, 因此整个 内容只有1/8 能够得到绘制,那么水平方向只得到这样的部分
,然后重复铺陈,而竖直方向只得到这样的
所以就得到第一个图的效果。
从而我们知道,如果我们需要更大的borderThickness, 那么我们就需要调整viewport的size.