konto usunięte

Temat: Animowane przejście

Chciałbym wykonać animowane przejście pomiędzy elementami child window w SL 3. Po zakończeniu animacji jedno okno ma przejść w drugie. Nie wiem jednak jak to zrobić.

Będę wdzięczny za wszelkie sugestie.

konto usunięte

Temat: Animowane przejście

Adam Mietlicki:
Będę wdzięczny za wszelkie sugestie.
Animujesz Opacity 0.0->1.0
Chcesz gotowy kod?

DODANO:
Po głębszej analizie uważam, że najlepiej to zrobić ładnie tj. nadpisać template do ChildWindow. Ze względu na objętość kodu całości nie wkleję, ale najlepiej w Blendzie kliknąć na ChildWindow -> Edit Template -> Edit a copy... i odpowiednio tę kopię zmodyfikować.
I potem to co najlepsze w XAMLu: wystarczy tylko podpiąć ten jeden styl/template (w SL 4.0 mamy już style działające na wszystkie kontrolki tzw. Implicit Theming - tak jak w pełnym WPFie) i gotowe! Nagle wszystkie ChildWindow w twojej aplikacji przejmują nowy styl (w SL3 trzeba dopisać ręcznie do każdej)
A sama animacja po modyfikacji wygląda tak (to jest wewnętrz template):
<VisualStateGroup x:Name="WindowStates">
<VisualState x:Name="Open">
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetName="Overlay" Storyboard.TargetProperty="Opacity">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="00:00:00.3" Value="1"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="Opacity">
<SplineDoubleKeyFrame KeyTime="0" Value="0"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.55" Value="1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Closed">
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetName="Overlay" Storyboard.TargetProperty="Opacity">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
<EasingDoubleKeyFrame KeyTime="00:00:00.3" Value="0"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="Opacity">
<SplineDoubleKeyFrame KeyTime="00:00:00.0" Value="1"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.45" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
maciek kański edytował(a) ten post dnia 01.04.10 o godzinie 00:17

konto usunięte

Temat: Animowane przejście

Dziękuję za odpowiedź i na pewno mi się to kiedyś przyda ale chodziło mi o coś innego.

Chodzi o to, że mam dwa okna typu child window, w których po kliknięciu na etykiet ma się uruchomić animacja, której efektem będzie przejście jednego okna w drugie. W przypadku drugiego okna występuje ta sama sytuacja.



Wyślij zaproszenie do