Благодаря ответу на этот вопрос о переполнении стека. Мне удалось заставить работать следующую анимацию, так что когда значение моего свойства ViewModel PageToolBarVisible вызывает постепенное появление и исчезновение панели инструментов.
Проблема в:
- непрозрачность панели инструментов исчезает, но пространство, которое она занимала, все еще присутствует после ее исчезновения
- начальный статус панели инструментов не синхронизирован со значением свойства ViewModel
Но как мне обрабатывать следующие условия в самом XAML, если это возможно:
- после панель инструментов (Граница) исчезает, как мне сказать "тогда и только тогда видимость=свернуто" (возможно, две анимации происходят одновременно или цепочка анимаций так видна =collapsed происходит после первой анимации), редактировать: я добавил триггер Opacity=0 ниже, который прекрасно работает
- до панель инструментов исчезает, как сказать "Visibilty=Normal"
- как мне также привязать эти события не только к процессу View Load, чтобы они отображали правильный статус (затухание или исчезновение) при первом появлении страницы?
Вот моя анимация на данный момент:
<Style x:Key="PageToolBarStyle" TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding PageToolBarVisible}" Value="true">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
From="0.0"
To="1.0"
Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
From="1.0"
To="0.0"
Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
<Trigger Property="Opacity" Value="0">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
</Style.Triggers>
</Style>
<Window.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<EventTrigger.Actions>
...how can I tell it here to "do the trigger logic contained in "PageToolBarStyle"...
</EventTrigger.Actions>
</EventTrigger>
</Window.Triggers>