【问题标题】:Binding to the actual of a UserControl in Silverlight?在 Silverlight 中绑定到实际的 UserControl?
【发布时间】:2010-12-08 03:13:59
【问题描述】:

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

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

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

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

【问题讨论】:

  • 控件 A 和/或 B 是自定义控件还是标准控件?
  • 在这种情况下,控件 A 和 B 都是自定义控件。

标签: silverlight data-binding storyboard


【解决方案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.

【讨论】:

  • 不,就像我在问题 Control A ismoved using a storyboard 中提到的那样
  • 当然.. 但是情节提要必须修改控件的某些属性才能移动它?在我上面的例子中,无论什么改变 ControlA 的属性、XAML 值、值背后的代码、绑定或情节提要 - ControlB 将始终跟随。
猜你喜欢
  • 2013-10-07
  • 2014-12-22
  • 2011-07-29
  • 2011-08-31
  • 2010-12-04
  • 2011-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多