wpf 定制虚线边框

                               wpf 定制控件虚线边框

该虚线边框能被使用在任何带BorderBrush属性的控件,效果如下:

wpf 定制虚线边框_第1张图片

代码 1:

通用border style 定义,代码来自 

https://stackoverflow.com/questions/6195395/how-can-i-achieve-a-dashed-or-dotted-border-in-wpf

  Viewport="0,0,8,8" ViewportUnits="Absolute" TileMode="Tile">
           
               
                   
                       
                           
                               
                               
                           

                       

                   

               

           

       

 

这其实是wpf brush中一种功能强大的brush, tile brush, 从tile名字可知,主要可以用在图标/图片重复铺陈方面。当然在brush 的内容里也可以使用drawing 对象绘制定制化的图形。以上代码就是绘制了这样图形,因为 Viewport="0,0,8,8", ViewportUnits="Absolute" 指定了该图形将以8个有效像素来绘制,而不是50,50并没有大小的意义;而TileMode="Tile" 是指定了填充模式为重复铺陈。

因此,如果我使用该brush作为区域(区域面积远大于8,8)填充刷时,会是以下的效果:

wpf 定制虚线边框_第2张图片

作为border brush使用方式:


       
           
           
           
       

       
           
           
       

       
            Test1
       

       
            Test2
       

       
            Test3
       

   

效果如贴图1。

原因是这样的:

因为在这里borderThickness =1, 因此整个 内容只有1/8 能够得到绘制,那么水平方向只得到这样的部分 ,然后重复铺陈,而竖直方向只得到这样的所以就得到第一个图的效果。

从而我们知道,如果我们需要更大的borderThickness, 那么我们就需要调整viewport的size.

你可能感兴趣的:(windows,10,UWP,wpf,dashline,border,dashborder)