Hallo alle,
ich spiele gerade mit XAML rum (WPF Anwendung) und wollte mein Fenster ein bisschen animieren. Dafür benutze ich EventTrigger und StoryBoard. Ich versuche gerade, dass sich das Fenster beim Öffnen aufschiebt und beim Schließen wieder zuschiebt. Das ganze wird über eine DoubleAnimation auf
Window.Width angewandt. Beim öffnen klappt das auch ganz gut, indem ich das "Window.Loaded"-Event benutze. Binde ich jetzt aber noch das "Window.Closing"-Event ein, erhalte ich eine "System.Windows.Markup.XamlParseException" beim Ausführen der Anwendung, also direkt beim Start. Rechtschreibung im Code stimmt. Wenn ich das Event durch z.B. "Window.KeyUp" ersetze, klappt alles.
Kann das sein, dass man manche Events nicht abfangen kann? Wenn ja, wieso nicht? Bei "Window.Closed" hätte ich es ja verstanden, weil die Ressourcen freigegeben werden, aber dass passiert doch erst nach "Window.Closing", oder?
hier noch der XAML ausschnitt:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| <Window.Triggers> <EventTrigger RoutedEvent="Window.Loaded"> <BeginStoryboard> <Storyboard> <DoubleAnimation From="0" To="{Binding ElementName=SplashWindow, Path=Width}" Storyboard.TargetName="SplashWindow" Storyboard.TargetProperty="Width" Duration="0:0:0.5" x:Name="WindowAnimation"/> </Storyboard> </BeginStoryboard> </EventTrigger> <EventTrigger RoutedEvent="Window.Closing"> <BeginStoryboard> <Storyboard> <DoubleAnimation From="{Binding ElementName=SplashWindow, Path=Width}" To="0" Storyboard.TargetName="SplashWindow" Storyboard.TargetProperty="Width" Duration="0:0:0.5" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Window.Triggers> |
Nachtrag
Hab nochmal gegooglet und was gefunden. "Window.Closing" ist kein Routed-Event und deshalb geht es nicht. Das Äquivalent dazu wäre "Window.Unloaded".
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler