Прямоугольник WPF с разной толщиной толщины по бокам или Граница с штриховым штрихом?
Я знаю, что могу создать пунктирную рамку с прямоугольником или рамкой с разной толщиной удара для разных сторон:
<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>
![enter image description here]()
В любом случае я могу добиться того и другого:
![enter image description here]()
?
UPDATE: нужно заполнить пробел в нем родителем (в отличие от моего примера с фиксированными размерами), например. Grid - так что DrawingGeometry, который имеет фиксированные размеры, и моя ручка не может быть использована для достижения этого. Может ли это?
Ответы
Ответ 1
Попробуйте следующее:
<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>
Он граничит, поэтому, когда он помещается внутри сетки, он будет использовать доступное пространство, и вы можете установить различную ширину для каждой стороны, он использует прямоугольник для визуальной кисти, так что вы можете легко установить границы в пунктирные.
![enter image description here]()
Ответ 2
Хакерное решение, но оно работает, чтобы закрыть сторону пунктирного прямоугольника, который вы хотите скрывать:
<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>
![enter image description here]()