2011-03-31 6 views
4

StoryBoardを使用して、ボタンをクリックしたときに平面投影アニメーションの画像を表示したいと考えています。データシートにStoryBoardターゲットを設定する

これは、1つのインスタンスで試しても機能します。

私の銀色のページ(Windows phone 7)では、データテンプレートを使用してオブジェクトのコレクションからそれを繰り返します。

ここでは動作しません。ここで

は、データテンプレートのの.xamlです:ここで

      <DataTemplate x:Name="MyDt"> 
           <Button Tag="{Binding iId}" BorderThickness="0" Click="buttonClick" Width="456" Style="{StaticResource ButtonStyle}"> 
            <Image x:Name="MyImg" Source="Images/image.png" Visibility="Collapsed"> 
             <Image.Projection> 
              <PlaneProjection/> 
             </Image.Projection> 
            </Image> 
           </Button> 
          </DataTemplate> 

は、(携帯電話のページリソース内)ストーリーボードのの.xamlです:ここで

<Storyboard x:Name="storyboardShowImage"> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationY)" Storyboard.TargetName=""> 
      <EasingDoubleKeyFrame KeyTime="0" Value="90"/> 
      <EasingDoubleKeyFrame KeyTime="00:00:01" Value="0"/> 
     </DoubleAnimationUsingKeyFrames> 
    </Storyboard> 

は、クリックの.csファイルでありますボタンのイベント:

private void buttonClick(object sender, RoutedEventArgs e) 
    { 
     /* Get image object from x:Name */ 
     Image img; 
     img = GetChildImage((DependencyObject)sender, "MyImg"); 
     /* Launch storyboard on img object */ 
     ((DoubleAnimationUsingKeyFrames)storyboardShowImage.Children[0]).SetValue(Storyboard.TargetNameProperty, img.Name); 
     storyboardShowImage.Begin(); 
    } 

しかし、私はエラーを取得する:

Cannot resolve TargetName MyImg. 

x:Name "MyImg"で複数のImageオブジェクトがあるためだと思いますが、私のデータテンプレートの正しいイメージにストーリーボードターゲットを設定する方法がわかりません。

答えて

3

名前がDataTemplateのローカルなので、その名前には解決できません。ストーリーボードをDataTemplate内で移動して、各インスタンスのイメージに適用できるようにし、VisualStateManagerを使用してPressed状態でアニメーションを開始するか、Storybaordをコードで作成してそれに応じてターゲットを設定することができます。

+0

ありがとうございます。私は初心者で、DataTemplateでStoryBoardを使ってVisualStateManagerで始める方法を知らない。サンプルがありますか?リンク ? – TheFrancisOne

+2

この質問に対する回答をご覧ください:http://stackoverflow.com/questions/3476963/windows-phone-7-wp7-change-a-buttons-background-color-on-clickボタンのスタイルをDataTemplateのButtonに適用します。 –

+0

リンクありがとうございます。私はVisualStateを使用してストーリーボードを変更しようとしますが、ボタンをクリックすると起動したいと思います.Express Blendを使用すると、ボタンのvisulaの統計情報が「Normal」、「MouseOver」、「Pressed」、「Disabled」 " – TheFrancisOne

関連する問題