2016-04-13 6 views
0

あなたがこの質問を読む前に、してくださいsee thisアニメーションのターゲットを指定する方法は?

は、今私はストーリーボードユーザーコントロールのリソースで定義され、それがViewModelにで定義されているイベントで、それをトリガします持っている:

<UserControl.Resources> 
    <Storyboard x:Key="Storyboard2"> 
     <DoubleAnimation Storyboard.TargetName="Btn_Import" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2"/> 
     <DoubleAnimation Storyboard.TargetName="Studio" Storyboard.TargetProperty="Opacity" From="0" To="{Binding StudioOpacityValue}" Duration="0:0:2"/> 

     <DoubleAnimation Storyboard.TargetName="StudioTranslateLeftToRight" Storyboard.TargetProperty="X" By="{Binding StudioStartingPointWidth}" Duration="0:0:2"> 
      <DoubleAnimation.EasingFunction> 
       <CubicEase EasingMode="EaseInOut"/> 
      </DoubleAnimation.EasingFunction> 
     </DoubleAnimation> 

     <DoubleAnimation Storyboard.TargetName="Animation" Storyboard.TargetProperty="Opacity" From="0" To="{Binding AnimationOpacityValue}" Duration="0:0:2"/> 
     <DoubleAnimation Storyboard.TargetName="Record" Storyboard.TargetProperty="Opacity" From="0" To="{Binding RecordOpacityValue}" Duration="0:0:2"/> 
     <DoubleAnimation Storyboard.TargetName="Info" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2"/> 
     <DoubleAnimation Storyboard.TargetName="textframe_image" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2"/> 
     <local:CommandFakeAnimation Command="{Binding Path=MainButtonClickedCommand, Mode=OneWay}" CommandParameter="Hide" Storyboard.TargetProperty="Opacity" Duration="0:0:0"/> 
    </Storyboard> 
</UserControl.Resources> 

をして、私が持っていますストーリーボードtrigersイベント:私はアニメーションを適用したい

<i:Interaction.Triggers> 
    <i:EventTrigger EventName="FadeInMainButtonsAfterStudio" SourceObject="{Binding Mode=OneWay}"> 
     <ei:ControlStoryboardAction Storyboard="{StaticResource Storyboard2}"/> 
    </i:EventTrigger> 
</i:Interaction.Triggers> 

、制御は、以下のとおりです。

<Button x:Name ="Studio" Grid.Row="33" Grid.Column="57" Grid.ColumnSpan="36" Grid.RowSpan="36" IsEnabled="{Binding IsStudioEnabled}" Opacity="{Binding StudioOpacityValue}" Command="{Binding MainButtonClickedCommand}" CommandParameter="Show"> 
    <Button.Template> 
     <ControlTemplate> 
      <Grid RenderTransformOrigin="0.5,0.5" x:Name="bg"> 
       <Image x:Name ="studio_image" Source="{Binding StudioBtnBaseImagePath}"/> 
      </Grid> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter TargetName="studio_image" Property="Source" Value="{Binding StudioBtnOverImagePath}" /> 
        </Trigger> 

       <Trigger Property="ButtonBase.IsPressed" Value ="True"> 
        <Setter TargetName="bg" Property="RenderTransform"> 
         <Setter.Value> 
          <ScaleTransform ScaleX="0.9" ScaleY="0.9"/> 
         </Setter.Value> 
        </Setter> 
       </Trigger> 

      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Button.Template> 

    <Button.RenderTransform> 
     <TransformGroup> 
      <TranslateTransform x:Name="StudioTranslateLeftToRight" X="0"/> 
     </TransformGroup> 
    </Button.RenderTransform> 

</Button> 

が、私は、次のランタイムエラーを取得:

Additional information: No target was specified for 'MainMenu.DummyAnimations.CommandFakeAnimation'

これに問題がある可能性があり何?

+0

ためStoryboard.TargetNameを提供していないあなたは、あなたがにイベントトリガーを適用制御についてもう少しXAMLをしてください投稿することができますか? –

+0

はい、アップデートをご覧ください。 – Ivan

答えて

1

は明らかなように、あなたが得ているエラーで説明し、カスタムアニメーション

+1

Nitinが正しいです。 'Storyboard.TargetName'は添付プロパティなので、' CommandFakeAnimation'でも使用できます。たとえば、 'Storyboard.TargetName =" Studio " –

+0

はい、ありがとうございます。私はそれがそれほど単純ではなかったことを知っていました。 – Ivan

関連する問題