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

nig*_*dev 4 c# silverlight wpf expression

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

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

GlueTogether(objButton1, objButton2);
Run Code Online (Sandbox Code Playgroud)

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

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

Mic*_*ter 7

  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
};
Run Code Online (Sandbox Code Playgroud)