gpt4 book ai didi

c# - 将两个形状连接在一起,Silverlight 2

转载 作者:太空狗 更新时间:2023-10-30 00:47:31 25 4
gpt4 key购买 nike

我想用一条线将两个形状或对象连接或粘合在一起。这些形状将动态生成,这意味着我将调用后端的 Web 服务来确定需要创建多少对象/形状。确定后,我需要将对象/形状连接在一起。

方法签名可能如下所示(类似于 Visio 的绘图功能):

GlueTogether(objButton1, objButton2);

我可能需要获取每个 Rectangle 形状或 Button 的位置以确定起点线的位置。然后确定第二个形状/对象的位置来画线。

任何帮助或建议都会很棒!

最佳答案

  1. 按堆叠顺序或 z 索引在形状下方使用路径或线
  2. 使用 instance.TransformToVisual() 获取每个形状的变换
  3. 使用变换对每个形状的中心点进行变换
  4. 在两个中心点之间画一条线。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com