当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《将两个形状连接在一起,Silverlight2》经验,为你挑选了1个好方法。

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

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

GlueTogether(objButton1, objButton2);

我可能需要获取每个Rectangle形状或Button的位置以确定起始Line点的位置.然后确定第二个形状/对象位置以绘制线条.

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



1> Michael S. S..:

    在堆叠顺序或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
};

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有