我在Silverlight中创建了一个用户控件,它基本上可以设置矩形的大小。
<StackPanel x:Name="LayoutRoot" Background="Gray"><StackPanel.Resources>
<Storyboard x:Name="myStoryboard" Completed="myStoryboard_Completed">
<DoubleAnimation x:Name="ExpandY" From="{Binding Path=From}" To="{Binding Path=To}" Duration="00:00:2"
Storyboard.TargetName="myScaleTransform"
Storyboard.TargetProperty="ScaleY">
<DoubleAnimation.EasingFunction>
<BackEase Amplitude="0.0" EasingMode="EaseInOut" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</StackPanel.Resources>
<Rectangle x:Name="myRectangle" MouseLeftButtonDown="Mouse_Clicked"
Fill="{Binding Path=Barcolor}" Width="35" Height="50" RadiusX="2" RadiusY="2" MouseEnter="myRectangle_MouseEnter" Stroke="White" StrokeThickness="0" MouseLeave="myRectangle_MouseLeave">
<Rectangle.RenderTransform>
<ScaleTransform x:Name="myScaleTransform" CenterY="50"/>
</Rectangle.RenderTransform>
</Rectangle>
</StackPanel>
我已将一个实现INotifyPropertyChanged的对象绑定到此作为数据上下文。
现在,当我在ASP.NET主页中将其作为silverlight控件运行时,整个工作正常。但是当我移植相同的代码来创建WP7用户控件时,我得到指向From =“{Binding Path = From}”位于Double动画“ExpandY”中的位置的AG_E_PARSER_BAD_PROPERTY_VALUE。
在silverlight控件和WP7用户控件中绑定数据有什么不同吗?
答案 0 :(得分:2)
此处的问题是DoubleAnimation
不是FrameworkElement
,而在Silverlight for WP7中,您只能在FrameworkElement
上设置绑定。为了实现这种效果,您需要在代码隐藏中操纵动画,可能需要将行为包装到单独的UserControl
中。
答案 1 :(得分:1)
根据您的代码我假设您在网络版上使用SL4。 WP7基于Silverlight 3,并且不支持完全相同的绑定。
中的问题相同