我怎样才能在WPF中实现虚线或虚线边框?

我有一个ListViewItem ,我正在应用一个Style ,我想把灰色虚线作为底部Border

我怎样才能做到这一点在WPF? 我只能看到纯色画笔。

您可以使用下面的代码中的矩形创build虚线或虚线

 <Rectangle Stroke="#FF000000" Height="1" StrokeThickness="1" StrokeDashArray="4 4" SnapsToDevicePixels="True"/> 

开始这个并根据你的场景自定义你的列表视图

这在我们的应用程序中运行良好,使我们能够使用真实的边框而不是乱用矩形:

 <Border BorderThickness="1,0,1,1"> <Border.BorderBrush> <DrawingBrush Viewport="0,0,8,8" ViewportUnits="Absolute" TileMode="Tile"> <DrawingBrush.Drawing> <DrawingGroup> <GeometryDrawing Brush="Black"> <GeometryDrawing.Geometry> <GeometryGroup> <RectangleGeometry Rect="0,0,50,50" /> <RectangleGeometry Rect="50,50,50,50" /> </GeometryGroup> </GeometryDrawing.Geometry> </GeometryDrawing> </DrawingGroup> </DrawingBrush.Drawing> </DrawingBrush> </Border.BorderBrush> <TextBlock Text="Content Goes Here!" Margin="5"/> </Border> 

请注意,视口将确定线条中的破折号的大小。 在这种情况下,它会产生八个像素的破折号。 视口=“0,0,4,4”会给你四个像素的破折号。

晚会有点晚,但下面的解决scheme为我工作。 它比其他解决scheme稍微简单/更好:

 <Border BorderThickness="1"> <Border.BorderBrush> <VisualBrush> <VisualBrush.Visual> <Rectangle StrokeDashArray="4 2" Stroke="Gray" StrokeThickness="1" Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type Border}}, Path=ActualWidth}" Height="{Binding RelativeSource={RelativeSource AncestorType={x:Type Border}}, Path=ActualHeight}"/> </VisualBrush.Visual> </VisualBrush> </Border.BorderBrush> <TextBlock Text="Whatever" /> </Border>