问题描述
|
我有一个ѭ0,我要向其应用and1,我想在虚线the 2的底部放一条虚线。
我如何在WPF中做到这一点?我只能看到纯色画笔。
解决方法
这在我们的应用程序中效果很好,允许我们使用真实的Border而不用与Rectangles混在一起:
<Border BorderThickness=\"1,1,1\">
<Border.BorderBrush>
<DrawingBrush Viewport=\"0,8,8\" ViewportUnits=\"Absolute\" TileMode=\"Tile\">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush=\"Black\">
<GeometryDrawing.Geometry>
<GeometryGroup>
<RectangleGeometry Rect=\"0,50,50\" />
<RectangleGeometry Rect=\"50,50\" />
</GeometryGroup>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Border.BorderBrush>
<TextBlock Text=\"Content Goes Here!\" Margin=\"5\"/>
</Border>
请注意,视口将确定行中破折号的大小。在这种情况下,它将生成八个像素的虚线。视口= \“ 0,4,4 \”将为您提供四个像素的虚线。
, 您可以使用矩形来创建点划线或虚线,如下面的代码所示
<Rectangle Stroke=\"#FF000000\" Height=\"1\" StrokeThickness=\"1\" StrokeDashArray=\"4 4\"
SnapsToDevicePixels=\"True\"/>
开始使用,并根据情况自定义列表视图
, 参加聚会有点晚,但是以下解决方案对我有用。它比其他两种解决方案都更简单/更好:
<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>
, Xaml
<Grid>
<Grid.RowDefinitions><RowDefinition Height=\"auto\"/></Grid.RowDefinitions>
<Grid.ColumnDefinitions><ColumnDefinition Width=\"auto\"/></Grid.ColumnDefinitions>
<Rectangle RadiusX=\"9\" RadiusY=\"9\" Fill=\"White\" Stroke=\"Black\" StrokeDashArray=\"1,2\"/>
<TextBlock Padding = \"4,2\" Text=\"Whatever\"/>
</Grid>