Не уверен, правильно ли я сформулировал вопрос. Так что терпите меня, если я ожидаю чего-то абсурдного. Я создаю приложение UWP на C # / XAML win10 по шаблону MVVM. Я определил несколько визуальных состояний для работы с более широкими экранами, а также некоторые для запуска некоторых анимаций. Проблема, с которой я столкнулся, заключается в том, что когда визуальное состояние для запуска анимации вызывается с помощью метода GoToState VisualStateManager, сеттеры, на которые воздействует VisualState, содержащий адаптивные триггеры, теряются. Вот пример кода:
//Defining my grid here
<Grid x:Name="gridNewDrawing" Margin="4">
<Button x:Name="Confirm" Click="Button_Confirm_Click" Width="180" MaxWidth="220" Height="36" HorizontalAlignment="Left" Style="StaticResource StyleButtonGeneral}"/>
<Button x:Name="Cancel" Click="Button_Cancel_Click" Width="180" MaxWidth="220" Height="36" HorizontalAlignment="Left" Style="StaticResource StyleButtonGeneral}"/>
</Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="WideLayoutTrigger">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="640" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="gridNewDrawing.Margin" Value="16" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="AnimationState">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Cancel" Storyboard.TargetProperty="Visibility" Duration="0">
<DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
Когда ширина больше 640 пикселей; поле gridNewDrawing переключается на 16; но когда я явно вызываю анимацию, используя
GoToState ("AnimationState")
Поле по умолчанию снова равно 4. Могу ли я сохранить изменения, сделанные с помощью адаптивного триггера, при настройке других визуальных стилей?