2010-05-09 5 views
11

Ich arbeitete an einer WPF-Anwendung und begann mit der Arbeit an einer benutzerdefinierten ControlTemplate. Ich habe den Punkt erreicht, an dem ich einige Steuereigenschaften ändern muss, wenn ein Ereignis eintritt.Gibt es eine Möglichkeit, Setter-Elemente in EventTrigger zu platzieren?

Zu diesem Zweck gibt es Setter-Elemente. Scheint alles gut, aber ich kann sie nicht innerhalb EventTrigger Elemente verwenden. Wenn beispielsweise ein einfacher Trigger, der an die Eigenschaften gebunden werden kann, verwendet wird, können Setter Elemente verwendet werden. Ich möchte jedoch nicht an eine Eigenschaftsänderung gebunden sein, sondern an ein Ereignis.

Gibt es eine Möglichkeit, dies in reinem XAML zu tun, oder muss ich im Code-Behind arbeiten?

Antwort

6

Sie können dort eine StoryBoard setzen und eine ObjectAnimationUsingKeyFrames starten, die Ihre Eigenschaften sofort in den Zielzustand "animiert". Wenn Ihre Eigenschaften double oder Color sind - noch besser: Sie können sie problemlos übergehen mit DoubleAnimation oder ColorAnimation jeweils.

Ich denke, das ist ein bisschen ein Overkill, aber wenn Sie reines XAML verwenden möchten, ist dies möglich.

+0

Genau das habe ich gesucht. Mit kleinen Änderungen konnte ich die Eigenschaft basierend auf dem ausgelösten Ereignis ändern. Setzen Sie die Animationsdauer auf 0 und KeyTime auf 0 für den DiscreteObjectKeyFrame, der sich in ObjectAnimationUsingKeyFrames befand. –

Verwandte Themen