Entwickler-Ecke

WPF / Silverlight - Bindings innerhalb custom Style


C# - Fr 03.10.14 18:56
Titel: Bindings innerhalb custom Style
Guten Abend - schon wieder :D

Da ich mich gerade von 0 auf 100 durch WPF bzw. XAML prügle, kann es sein, dass heute noch des öfteren Fragen von mir kommen.

Mein Problem diesmal:
Ich habe einen eigenen Style für Fenster erstellt (TargetType=Window). In diesem Style habe ich eine Animation mittels Storyboard. Dabei möchte ich (wie schon in meinem Post letzte Stunde) das Fenster ausfahren (Animtaion beim Öffnen), indem ich die Width-Eigenschaft ändere.
Wie kann ich innerhalb des Style den Endwert der Animation (DoubleAnimation.To) auf die Width-Eigenschaft des Fensters legen, dass diesen Style benutzt?

Ich hoffe man versteht die Frage :mrgreen:


XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
  <Style BasedOn="{StaticResource {x:Type Window}}" x:Key="MenuWindowStyle" TargetType="Window" >
           <Setter Property="Window.AllowsTransparency" Value="True" />
           <Setter Property="Window.Background" Value="Transparent" />
           <Setter Property="Window.WindowStyle" Value="None" />
          
           <Style.Triggers>
                <EventTrigger RoutedEvent="Window.Loaded">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation From="0" To="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Window.Width), Mode=OneTime}" Storyboard.TargetProperty="(Window.Width)" Duration="0:0:0.5" />                                
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Style.Triggers>
        </Style>


So sieht der Style bis jetzt aus.


C# - Sa 04.10.14 17:10

Niemand eine Idee / Link / Tipp? TemplatedParent ist ja eigentlich dafür gedacht!?!? :gruebel:


Th69 - Sa 04.10.14 20:06

Hallo,

ich habe mal im Internet nach "WPF DoubleAnimation.To Binding" gesucht und da scheinen ein paar Tricks nötig:
Binding Animation To and From Properties [http://blogs.msdn.com/b/nikola/archive/2008/03/20/binding-animation-to-and-from-properties.aspx]
WPF animation: binding to the “To” attribute of storyboard animation [http://stackoverflow.com/questions/2186933/wpf-animation-binding-to-the-to-attribute-of-storyboard-animation]
WPF animation: binding to the “To” attribute of storyboard animation. [http://social.msdn.microsoft.com/Forums/vstudio/en-US/d3986233-6f9c-45ee-bae9-8141f57722aa/wpf-animation-binding-to-the-to-attribute-of-storyboard-animation?forum=wpf] (selbe Frage wie oben, aber anderes Forum)
How to bind to Animation To and FROM properties [http://khason.net/blog/how-to-bind-to-animation-to-and-from-properties/]


C# - So 05.10.14 20:29

Danke. Ich habe jetzt ein kleinen Workaround mithilfe des 2. Links gemacht. Ich hätte gerne direkt das Fenster animiert, aber so muss ich noch ein Grid dazwischen bauen damit es geht.