2011-03-18 21 views
1

我在Silverlight中創建了一個用戶控件,它基本上爲矩形的大小設置動畫。在WP7中進行數據綁定時獲取AG_E_PARSER_BAD_PROPERTY_VALUE用戶控件

<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用戶控件時,我得到的AG_E_PARSER_BAD_PROPERTY_VALUE指向From =「{Binding Path = From}」的位置位於Double動畫「ExpandY」中。

Silverlight控件和WP7用戶控件中的數據是如何綁定的?

+0

什麼是DataContext?是來自依賴屬性? – Robert 2011-03-18 13:26:41

+0

對不起 - 我只是將這個XAML添加到了一個示例頁面 - 並且它打開正常。也許 - 你在設計器中使用示例數據嗎?這是否返回有效的東西? – Stuart 2011-03-18 13:30:53

回答

2

這裏的問題是,DoubleAnimation不是FrameworkElement,並在Silverlight WP7爲您只能設置在FrameworkElement綁定。爲了實現這種效果,您需要在代碼隱藏中操作動畫,可能是將行爲包裝到單獨的UserControl中。

與此問題相同:Binding to 'To' In Storyboard

1

根據您的標籤,我假設您在網絡版上使用SL4。 WP7基於Silverlight 3,不支持以完全相同的方式進行綁定。

我懷疑你的問題是由於相同Dynamically change gradientstop color

+0

嗨馬特,問題發生的綁定元素從,也。 – Kranthi 2011-03-18 13:33:44

相關問題