Autor Beitrag
C#
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Fr 03.10.14 17:19 
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:
ausblenden 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