2010-06-06 56 views
4

我有一个简单的winphone7应用程序,但我认为这将适用于任何silverlight。Silverlight绑定到TranslateX

基本上我有一个椭圆,我想用它翻译X和Y属性。这是我的尝试:

<Ellipse Fill="#FFF4F4F5" Margin="0,0,-3,-3" Stroke="Black" RenderTransformOrigin="0.5,0.5" > 
      <Ellipse.RenderTransform> 
       <CompositeTransform TranslateY="{Binding Y}" TranslateX="{Binding X}"/> 
      </Ellipse.RenderTransform> 
</Ellipse> 

我很确定绑定设置正确;问题是,当我运行该应用程序时,它给了我这个错误:

2260发生错误。 [Line:4 Position:33]

这是一个XAML错误。当我注释掉组合转换线时,错误消失。

任何人都可以指向正确的方向吗?如果你需要更多的代码让我知道,我会发布更多。

感谢

回答

5

的Windows Phone 7目前是基于Silverlight 3运行Silverlight的没有4.

一个在Silverlight 3的限制是,你只能绑定到从FrameworkElement派生的元素。转换类不从FrameworkElement派生,因此不能参与绑定。

而不是通过绑定来移动椭圆,可以考虑使用Storyboard来改变动画。

+0

啊,谢谢你。今天晚上我回家时,我会尝试一些故事情节。 – Peanut 2010-06-07 12:32:01

+0

@AnthonyWJones,是否在Silverlight 4中删除了这个限制? – altso 2011-07-17 18:39:54

+0

@altso:这是一个非常好的问题。当然,在Silverlight 4的桌面版本中,您可以绑定到Dependency对象。通过扩展,我期望看到,在芒果,但是,我没有测试,以确保。 – AnthonyWJones 2011-07-18 12:10:49