2010-02-18 4 views
7

Nun, ich habe eine Kontrolle Gewohnheit und wenn Visibility-Visible geändert habe ich ein Trigger mit einer Eingabe/Exit-Aktion, aber das Problem ist, dass, wenn die Ausgangsaktion der Visibility nicht mehr Visible so die Animation nicht gesehen werden kann, wie feuert Würde ich das reparieren?WPF Animation auslösen, wenn die Sichtbarkeit geändert wird?

hier ist mein Trigger:

<ControlTemplate.Triggers> 
    <Trigger Property="Visibility" Value="Visible"> 
     <Trigger.ExitActions> 
      <BeginStoryboard Storyboard="{StaticResource Hide}"/> 
     </Trigger.ExitActions> 
     <Trigger.EnterActions> 
      <BeginStoryboard Storyboard="{StaticResource Show}"/> 
     </Trigger.EnterActions> 
    </Trigger> 
</ControlTemplate.Triggers> 
+0

Das stimmt. Tricky Zeug. Ich würde dieses Problem mit angehängten Eigenschaften + Wertzwang lösen. Schau mal hier: [WPF Fade Animation] (http://stackoverflow.com/questions/1013817/wpf-fade-animation/1015635#1015635). Hoffe das hilft. Prost, Anvaka. – Anvaka

+0

Hat das eine Fade-Animation drin? Kann ich das bearbeiten, so dass es nur das Verstecken/Kollaps verzögert, bis meine Animation fertig ist? – Peter

+0

Ich frage mich das gleiche wie Petoj. – jpierson

Antwort

3

ich das auch versucht und sind gescheitert. Ich denke, es ist nicht möglich, dies in einer einfachen ControlTemplate mit einer Trigger auf der Visibility Eigenschaft zu erreichen. Was Sie tun können, ist eine Opacity Animation von 1 bis 0 zu einer Trigger für eine andere Eigenschaft hinzufügen, zum Beispiel eine DependencyProperty, die Sie in den Code hinter sich hinzufügen.

0

Sie könnten auch ObjectAnimationUsingKeyFrames verwenden, um Visibility für Animationszeitraum festzulegen. In diesem Fall ist kein Codebehind erforderlich.

+0

ich bin nicht 100% sicher, aber das HideStoryboard würde das ShowStoryboard auslösen, wenn es den Wert von Sichtbarkeit geändert hat? – Peter

Verwandte Themen