我正在尝试向WPF画布添加圆角矩形 . 我阅读了几种使用矩形的方法,但它们通常是添加UI元素,例如使用LineGeometry,而不是WPF画布上的对象 .
有人可以帮我解决如何处理ArcSegment类以将其添加到画布中的方式与添加一行相同吗?
例如,使用一行时:
首先,我定义行参数
Line botLine = new Line();
botLine.X1 = x + width - radius;
botLine.Y1 = y;
botLine.X2 = x + radius;
botLine.Y2 = y;
然后我可以像这样将这一行添加到画布:
canvas1.Children.Add(botLine);
但我无法使用相同的方法添加ArcSegment . 在这种情况下会采取什么方法?还有一种方法可以在一个实体中将线和弧连接在一起吗?
1 回答
您无法将
ArcSegment
添加到Canvas
,因为它不是Shape
;它是几何API的一部分,表示基于路径的几何体中的弧,但它不是您通常直接使用的类 .没有
Shape
直接对应于'arc',但您可以为其几何体创建一个带有单个圆弧的Path
. 在C#中执行此操作的最简单方法是使用StreamingGeometry
作为路径数据:根据需要调整参数以适合您的使用案例 . 要了解如何在XAML中声明路径几何,请参阅WPF的路径标记语法this MSDN article .