長方形で破線の境界線を作成したり、辺ごとに異なるストロークの太さで境界線を作成したりできることは知っています。
<StackPanel Orientation="Horizontal">
<Rectangle Stroke="Green" StrokeThickness="2" StrokeDashArray="4 2" Fill="LightGreen" Height="64" Width="32" Margin="5"/>
<Border BorderBrush="Green" BorderThickness="2,2,2,0" Background="LightGreen" Height="64" Width="32" Margin="5" />
</StackPanel>
とにかく両方を達成できますか?
?
更新:これは、親のスペースを埋める必要があります(固定サイズの例とは異なります)。グリッド-固定サイズのDrawingGeometryと私のペンを使用してこれを達成することはできません。できますか?
これを試して:
<Border BorderThickness="4,4,4,0" Background="LightGreen">
<Border.BorderBrush>
<VisualBrush>
<VisualBrush.Visual>
<Rectangle
Stroke="Green" Fill="LightGreen"
StrokeDashArray="4 2"
StrokeThickness="4"
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>
</Border>
境界線なので、グリッドの内側に配置すると、利用可能なスペースが使用され、各辺に異なる幅を設定できます。視覚ブラシに長方形を使用するため、境界線を簡単に破線に設定できます。
ハックな解決策ですが、それは機能しますが、隠したい破線の四角形の側面をカバーすることです:
<Grid Width="100" Height="100">
<Rectangle Stroke="Green" StrokeThickness="4" StrokeDashArray="4 2" Fill="LightGreen" Margin="10"/>
<Rectangle StrokeThickness="0" Height="4" Margin="10" VerticalAlignment="Bottom" Fill="LightGreen"/>
</Grid>