我想用一条线将两个形状或对象连接或粘合在一起。这些形状将动态生成,这意味着我将调用后端的 Web 服务来确定需要创建多少对象/形状。确定后,我需要将对象/形状连接在一起。
方法签名可能如下所示(类似于 Visio 的绘图功能):
GlueTogether(objButton1, objButton2);
我可能需要获取每个 Rectangle 形状或 Button 的位置以确定起点线的位置。然后确定第二个形状/对象的位置来画线。
任何帮助或建议都会很棒!
最佳答案
- 按堆叠顺序或 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
};
关于c# - 将两个形状连接在一起,Silverlight 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/467951/