我有一个基于一组矩形/椭圆几何的路径。当我在其周围放置一个自动大小的边框时,边框缩小以适合RectangleGeometry但使用EllipseGeometry做一些奇怪的事情,如下所示。任何人都知道如何修复它,所以边框(以蓝色显示)紧贴整个事物?
最终,我想要一个适合任意运行时生成的路径(包括笔触粗细)的边框或面板,我需要保持几何尺寸。
示例代码:
<Border BorderBrush="Blue" BorderThickness="2"
HorizontalAlignment="Center" VerticalAlignment="Center">
<Path Stroke="Orange" StrokeThickness="5" Fill="Red">
<Path.Data>
<GeometryGroup>
<EllipseGeometry Center="-10,-10" RadiusX="12" RadiusY="12" />
<EllipseGeometry Center="70,0" RadiusX="70" RadiusY="10">
<EllipseGeometry.Transform>
<RotateTransform Angle="-25" CenterX="50" CenterY="0" />
</EllipseGeometry.Transform>
</EllipseGeometry>
<RectangleGeometry Rect="0,0,100,100" />
</GeometryGroup>
</Path.Data>
</Path>
</Border>
答案 0 :(得分:2)
您可以设置路径Stretch
属性并将其Width
绑定到几何边界的宽度:
<Path ... Stretch="Uniform"
Width="{Binding Data.Bounds.Width, RelativeSource={RelativeSource Self}}">
...
</Path>
由于几何体的边界不包含渲染的路径StrokeThickness
,您可以选择将边框放入画布(根本不调整其子元素的大小),并且#39;设置路径的宽度。但是,当您希望将Canvas置于外部网格中心时,这可能会导致问题。它的实际大小似乎为零。
<Canvas>
<Border BorderBrush="Blue" BorderThickness="2">
<Path ... Stretch="Uniform">
...
</Path>
</Border>
</Canvas>