Question

Quelqu'un peut-il me dire à quoi cela ressemblerait en C #?

<EventTrigger RoutedEvent="Button.Click" SourceName="btnSplit">
                <EventTrigger.Actions>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation From="0" To="1" Duration="0:0:0.25" Storyboard.TargetName="gridSplit" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
                            <DoubleAnimation From="1" To="0" Duration="0:0:0.25" Storyboard.TargetName="gridJoin" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger.Actions>
            </EventTrigger>

Je n'ai pas besoin de la partie "RoutedEvent" parce que je veux exécuter le code lorsque l'utilisateur clique sur un bouton par programme (Click-EventHandler) .. Le gestionnaire RoutedEvent est appelé en premier. C'est pourquoi je ne peux pas faire un if-else et avoir besoin de faire toute l'animation en code-behind.

Merci d'avance!

MemphiZ

Était-ce utile?

La solution

Résolu!

Donnez simplement au Storyboard un x: Name, puis appelez-le comme suit:

<Storyboard x:Name="storyBoardName">
    <DoubleAnimation From="0" To="1" Duration="0:0:0.25" Storyboard.TargetName="grid1" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
    <DoubleAnimation From="1" To="0" Duration="0:0:0.25" Storyboard.TargetName="grid2" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
</Storyboard>

Storyboard story = (Storyboard)this.FindResource("storyBoardName");  
this.BeginStoryboard(story);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top