3 ответов:
это отлично работало в нашем приложении, позволяя нам использовать реальную границу и не возиться с прямоугольниками:
<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>обратите внимание, что видовой экран определяет размер тире в линиях. В этом случае он генерирует восемь пикселей перебежками. Viewport= "0,0,4,4" даст вам четыре пикселя тире.
вы можете создать пунктирную или тире линию с помощью прямоугольника, как в коде ниже
<Rectangle Stroke="#FF000000" Height="1" StrokeThickness="1" StrokeDashArray="4 4" SnapsToDevicePixels="True"/>начните с этого и настроить listview в соответствии с вашим сценарием
немного опоздал на вечеринку, но следующее решение работает для меня. Это немного проще/лучше, чем оба других решения:
<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>
Comments