Auslösen von Animationen anderer Steuerlemente möglich?

  • WPF MVVM

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Elster.

    Auslösen von Animationen anderer Steuerlemente möglich?

    Moin Moin,
    ich probiere mich im Augenblick etwas durch die Animationen von WPF/XAML aus.
    Dabei kam mir die Frage auf, ob es mögich sei: über das Hovern eines Steuerlementes, die Animation eines anderen Steuerlementes auszulösen?

    Beispiel:
    Wenn ich über Button1 mit der Maus gehe, wird der Hintergrund von Button2 gelb und von Button3 rot.
    Moin, @Elster.

    Es gibt mehrere Möglichkeiten.

    Eine ist das mit Events (Ereignissen) in CodeBehind, weil ist ja nur UI-Logik.
    Eine andere Variante sind Storyboard und Animationen.

    Da es aber über mehrere Buttons (Controls) geht, würde ich bei MVVM eine Zustands-Variable im ViewModel anlegen,
    und bei Wertänderungen das an die anderen Buttons weitergeben.

    Dazu würde ich den einzelnen Buttons neue Styles geben und mit DataTriggern dann die Änderungen "animieren".

    MfG Joshi
    Hey. Danke für die Antwort. Ich verwende das MVVM Pattern und bin momentan nie sicher, ob ich das CodeBehind anfassen soll oder nicht, für die Schönheit der Projekte.
    Ich habe es so realisiert, dass ich ein ContentControl erstellt habe und das Template bearbeitet habe. Mit Triggern die über eine Source verfügen war es schon schnell getan.

    XML-Quellcode

    1. <Style TargetType="{x:Type ContentControl}" x:Key="ControlTest">
    2. <Setter Property="Template">
    3. <Setter.Value>
    4. <ControlTemplate>
    5. <StackPanel Background="Red">
    6. <Label Content="Button 1" Name="lblOne"/>
    7. <Label Content="Button 2" Name="lblTwo"/>
    8. <Label Content="Button 3" Name="lblThree"/>
    9. </StackPanel>
    10. <ControlTemplate.Triggers>
    11. <Trigger Property="IsMouseOver" Value="True" SourceName="lblOne">
    12. <Setter Property="Background" Value="GreenYellow" TargetName="lblTwo"/>
    13. <Setter Property="Background" Value="OrangeRed" TargetName="lblThree"/>
    14. </Trigger>
    15. </ControlTemplate.Triggers>
    16. </ControlTemplate>
    17. </Setter.Value>
    18. </Setter>
    19. </Style>


    Implementation über Style mit gegebenen Key.