Mam stronę z siatką zawierającą dwie kolumny, pierwsza zawiera przycisk, który przełącza widoczność drugiego (poprzez powiązanie ViewModel). Jak mogę dodać animację do pokazywania/ukrywania drugiej kolumny (z Pivot jako treścią) do tego scenariusza?Animacje C# UWP XAML
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Button Command="{Binding TogglePivot}"/>
</Grid>
<Pivot x:Name="Content_Pivot" Grid.Column="1">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<!-- Hidden state -->
<VisualState x:Name="Hidden">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Content_Pivot" Storyboard.TargetProperty="Width">
<DiscreteObjectKeyFrame KeyTime="0" Value="0"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<!-- Visible state -->
<VisualState x:Name="Visible">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Content_Pivot" Storyboard.TargetProperty="Width">
<DiscreteObjectKeyFrame KeyTime="0" Value="600"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<interactivity:Interaction.Behaviors>
<!-- Show -->
<core:DataTriggerBehavior Binding="{Binding IsVisible}" ComparisonCondition="Equal" Value="True">
<core:GoToStateAction StateName="Visible"/>
</core:DataTriggerBehavior>
<!-- Hide -->
<core:DataTriggerBehavior Binding="{Binding IsVisible}" ComparisonCondition="Equal" Value="False">
<core:GoToStateAction StateName="Hidden" />
</core:DataTriggerBehavior>
</interactivity:Interaction.Behaviors>
<!-- Content.. -->
</Pivot>
</Grid>
Powyższy działa dobrze, ale tylko na pierwszy przełącznik z widoczności obrotu. Kolejne przełączenia nie wyświetlają animacji ..
Dowolny łatwy sposób na osiągnięcie tego bez ręcznego wywoływania Storyboard?
Dzięki.
EDIT == ==
że pewne zmiany w powyżej kodu (tj dodano VisualStates
i DataTriggerBehaviour
).
Nadal nie można go uruchomić ... Jakieś pomysły?
Dzięki @Corcus, zaktualizowałem moje OP o moją próbę ... Wciąż nie ma kości. Czy masz ochotę pokazać mi swoją próbkę? –
Zaktualizuję odpowiedź, gdy dotrę na mój domowy komputer. Bądź na bieżąco :) – Corcus
@Ubobo Pomyliłeś trochę. Zaktualizowałem swoją odpowiedź. Potrzebne były podwójne animacje, a nie klatka kluczowa. Również użycie wizualnego menedżera stanu nie było konieczne. – Corcus