2010-05-28 58 views

回答

12

您可以使用网格替换边框并为其指定一个填充整个区域的矩形吗?

<Rectangle Stretch="Fill" RadiusX="10" RadiusY="10" StrokeDashArray="10, 2" Stroke="Black" Fill="White" /> 

的StrokeDashArray可以用来绘制点缀,但边界已经没有这样的属性。

编辑:

因为我注意到你只是点缀在底边框你可以做这样的事情

<Border Width="100" Height="100" Background="Blue" BorderThickness="0,0,0,1"> 
    <Border.BorderBrush> 
     <LinearGradientBrush StartPoint="0,0" EndPoint=".2,0" SpreadMethod="Repeat" > 
      <GradientStopCollection> 
       <GradientStop Color="Transparent" Offset="0" /> 
       <GradientStop Color="Transparent" Offset="0.3" /> 
       <GradientStop Color="Red" Offset="0.3" /> 
       <GradientStop Color="Red" Offset="0.6" /> 
       <GradientStop Color="Transparent" Offset="0.6" /> 
       <GradientStop Color="Transparent" Offset="1" /> 
      </GradientStopCollection> 
     </LinearGradientBrush> 
    </Border.BorderBrush> 
</Border> 

调整的中间两个渐变停止年代Offset调整红点的宽度/短跑。您可能还需要调整终点以使其在所需的时间间隔内重复。

+2

如果您不希望线条上的破折号在调整大小时移动,您应该在'LinearGradientBrush'上设置'MappingMode =“Absolute”'。进行更改后,您可能还需要调整其他一些参数。 – 2011-12-21 16:57:19

6

Stephan的回答很有帮助。但是,如果你想不伸展约,因为它是调整一个简单的虚线,试试这个XAML:

<!-- Horizontal dotted line --> 
<Border HorizontalAlignment="Stretch" Height="1" BorderThickness="0,0,0,1"> 
    <Border.BorderBrush> 
    <LinearGradientBrush StartPoint="0,0" EndPoint="2,0" 
         SpreadMethod="Repeat" MappingMode="Absolute"> 
     <GradientStop Color="Transparent" Offset="0" /> 
     <GradientStop Color="Transparent" Offset="0.499" /> 
     <GradientStop Color="#999" Offset="0.5" /> 
    </LinearGradientBrush> 
    </Border.BorderBrush>        
</Border> 

下面是一个垂直虚线一种替代方案:

<!-- Vertical dotted line --> 
<Border VerticalAlignment="Stretch" Width="1" BorderThickness="0,0,1,0"> 
    <Border.BorderBrush> 
    <LinearGradientBrush StartPoint="0,0" EndPoint="0,2" 
         SpreadMethod="Repeat" MappingMode="Absolute"> 
     <GradientStop Color="Transparent" Offset="0" /> 
     <GradientStop Color="Transparent" Offset="0.499" /> 
     <GradientStop Color="#999" Offset="0.5" /> 
    </LinearGradientBrush> 
    </Border.BorderBrush>        
</Border> 

巧合的是,如果你在不是1px宽/高的区域使用此笔刷,然后您会获得漂亮的细条纹图案。