Я пытаюсь получить опыт использования VisualStateManager, с которым у меня мало опыта, в. NET Core WPF-приложении. У меня есть сетка на окне с 3 TextBlocks в нем. Когда я сужаю окно до 380 пикселей или меньше, я хочу переместить один из TextBlocks из Grid.Row 0 в Grid.Row 1. Я посмотрел, как я могу это сделать, но пример кода, с которым я столкнулся, использовал VisualState.StateTriggers. Однако, когда я попытался использовать это в коде, с которым я работаю, Intellisense не распознал VisualState.StateTriggers, поэтому я не уверен, что делать дальше. И когда я изменяю размер окна до более чем 380 пикселей, я хочу вернуть значение TextBlock's GridRow обратно в 0. Я начал использовать DoubleAnimation, но, опять же, я не знаю, как вызвать изменение состояния. Я работаю с. NET Core 3.1, это приложение WPF. Вот что у меня так далеко:
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock HorizontalAlignment="Left">Some text in the upper left</TextBlock>
<TextBlock
x:Name="UpperRightTextBlock"
HorizontalAlignment="Right"
Text="Some text in the upper right">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="WideView">
<VisualState x:Name="GoToWideView">
<!--<Storyboard>
<DoubleAnimation
Storyboard.TargetName="GridRow"
Storyboard.TargetProperty="Grid.Row"
To="0"
Duration="0" />
</Storyboard>-->
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</TextBlock>
<TextBlock
x:Name="BottomTextBlock"
Grid.Row="2"
HorizontalAlignment="Center">
This text is in the bottom row
</TextBlock>
</Grid>