2

看到一些关于 SO 的问题,但没有人回答我的问题。

我想要完成的事情:我有一个自定义控件(我们称之为 A),它使用情节提要在画布上移动。我想将另一个自定义控件的画布(我们称之为 B)位置绑定到第一个控件上。

使用 TransformToVisual(Application.Current.RootVisual) 我可以获得控件 A 的实际位置,但我不知道如何在此绑定到 B 的 Canvas.Left 和 Canvas.Top。

有没有人想出如何完成这项任务?或者让我指出正确的方向?

4

1 回答 1

1

我假设您通过更新其 Canvas.Left 和 Canvas.Right 属性来移动控件 A 的位置?如果是这种情况,您不需要使用 TransformToVisual,您只需将它们的 Canvas Top 和 Left 属性绑定在一起:

<Canvas >
  <TextBlock x:Name="ControlB"
             Text="Some Text"
             FontSize="15"
             Canvas.Left="{Binding ElementName=ControlA, Path=(Canvas.Left)}"
             Canvas.Top="{Binding ElementName=ControlA, Path=(Canvas.Top)}"/>
  <TextBlock x:Name="ControlA"
             Text="Some Text"
             FontSize="13"
             Canvas.Left="100"
             Canvas.Top="100"/>    
</Canvas>

问候,科林 E。

于 2010-12-16T08:47:01.347 回答