我正在寻找用线连接或粘合两个形状或物体.这些形状将动态生成,这意味着我将在后端调用Web服务来确定需要创建多少个对象/形状.确定后,我需要将对象/形状连接在一起.
方法签名可能如下所示(类似于Visio的绘图功能):
GlueTogether(objButton1, objButton2);
我可能需要获取每个Rectangle形状或Button的位置以确定起始Line点的位置.然后确定第二个形状/对象位置以绘制线条.
任何帮助或建议都会很棒!
在堆叠顺序或z索引中使用形状下方的路径或线
使用instance.TransformToVisual()来获取每个形状的变换
使用变换来变换每个形状的中心点
在两个中心点之间画一条线.
var transform1 = shape1.TransformToVisual(shape1.Parent as UIElement); var transform2 = shape2.TransformToVisual(shape2.Parent as UIElement); var lineGeometry = new LineGeometry() { StartPoint = transform1.Transform(new Point(shape1.ActualWidth / 2, shape1.ActualHeight / 2.0)), EndPoint = transform2.Transform(new Point(shape2.ActualWidth / 2.0, shape2.ActualHeight / 2.0)) }; var path = new Path() { Data = lineGeometry };