是否可以更改WPF元素的边界?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以更改WPF元素的边界?相关的知识,希望对你有一定的参考价值。

我正在动态创建Path,并且我注意到形状的边界Rect远大于路径本身,如下面的图片波纹所示。

enter image description here

是否有可能改变这些界限?不幸的是,PathGeometry.Bounds属性是只读的。

ps:如果有帮助,我对缩小范围很感兴趣,因此可以将路径的RenderTransformOrigin设置为new Point(0.5,0.5),以围绕该路径旋转(RotateTransform)该路径。

PathFigure的创建

我定义4个点,然后创建三个LineSegmentArcSegment。我创建了一个Circle结构,用作计算这些点的指导。

private PathFigure CreateFigure()
        {
            var lineAB = new LineSegment(pointB, true);
            var arcBC = new ArcSegment(pointC, new Size(_outerCircle.Radius, _outerCircle.Radius), 0, false, SweepDirection.Clockwise, true);
            var lineCD = new LineSegment(pointD, true);

            return new PathFigure(pointA, new List<PathSegment> { lineAB, arcBC, lineCD }, true);
        }
答案

由于无法在定义边界后更改边界,因此将Path作为子项添加到GridBorder并设置Path.Stretch="Fill"会强制边界在路径期间由路径填充布局通行证。

以上是关于是否可以更改WPF元素的边界?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WPF 中更改数据网格标题样式或元素样式前景

WPF 精修篇 依赖属性

带边框的 WPF 绑定

如何在屏幕方向更改时附加片段?

如果样式已经设置,如何覆盖 WPF 子控件样式?

在 WPF 中更改画布的坐标系