2012-03-25 33 views
2

タブコントロールでは、ステップが単純なのでフェードインに問題はありません。ユーザーコントロールにトリガーを置くことができ、アニメーションは表示されるとすぐに実行されます。しかし、問題は、私がフェードアウトしたいとき、コントロールが隠されているため、アニメーションを完了できません。ここでwpf tabcontrolでアニメーションをフェードアウト

は私が達成したいの例です:ユーザーコントロールで

<TabControl IsSynchronizedWithCurrentItem="True" VerticalAlignment="Bottom" Name="TabControl1"> 
     <TabItem Width="70" Name="TabItem1"> 
      <Grid> 
       <my:UserControl1 x:Name="UserControl1"/> <!-- my is the clr-namespace for usercontrols --> 
      </Grid> 
     </TabItem> 
     <TabItem Width="100" Name="TabItem2"> 
      <Grid>      
       <my:UserControl2 x:Name="UserControl2"/> 
      </Grid> 
     </TabItem> 
    </TabControl> 

<Grid.Style> 
     <Style TargetType="{x:Type Grid}"> 
      <Style.Triggers> 
       <Trigger Property="IsVisible" Value="True"> 
        <Trigger.EnterActions> 
         <BeginStoryboard> 
          <Storyboard> 
           <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.5"/> 
          </Storyboard> 
         </BeginStoryboard> 
        </Trigger.EnterActions> 
        <Trigger.ExitActions> 
         <BeginStoryboard> 
          <Storyboard> 
           <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.5"/> 
          </Storyboard> 
         </BeginStoryboard> 
        </Trigger.ExitActions> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Grid.Style> 
+0

今、他のすべてのアイテムにも問題があることがわかりました。新しい項目がフェードインでアニメーション化されると、前の項目はフェードアウトしません。例は、各要素のキーボードフォーカスのアニメーションです。このトピックについての助けをいただければ幸いです。 ' よう – lkn2993

答えて

1

あなたはスタイルからそれを行うことはできませんhttp://www.yoyonetwork.info/YoYoTabTestTestPage.html

そして、ここではコードです。 TabControlを手動で再定義し、そのSelectionChangedイベントをチェックし、コードからアニメーションを実行し、CompletedイベントがselectedIndexを変更するのを待つ必要があります。

+0

何か '?フェードアニメーションを内部に書き、usercontrolnameをターゲットにしますか? – lkn2993

+0

いいえ、tabControlには、インデックス変更のための変更イベントまたはプレビューイベントがないため、カスタムtabControlとよく似ています。 –

+0

カスタムtabcontrolの具体的なガイドを教えてください。コントロールテンプレートやカスタムイベントなどを作成する必要がありますか?実際に私はカスタムイベントを書く方法を知らない。 – lkn2993

関連する問題