У меня мало вопросов о visualstate, созданном скопированным шаблоном в UWP.
Я просто делаю NavigationView, ниже приведен его исходный код.
<NavigationView Style="{StaticResource NavigationViewStyle1}"
x:Name="navigationView"
SelectedItem="{x:Bind ViewModel.Selected, Mode=OneWay}"
Header="{x:Bind ViewModel.Selected.Content, Mode=OneWay}"
IsSettingsVisible="False"
Background="{ThemeResource SystemControlBackgroundAltHighBrush}"> ..omitted
и я щелкнул правой кнопкой мыши NavigationView
в режиме конструктора и щелкнул Изменить шаблон и щелкнул изменить копию (не уверен в названии, потому что мой визуальныйстудийные шоу на корейском).
Как известно, тогда создается словарь дизайна.Я пытаюсь быть знакомым с этим, редактируя некоторые части этого.А потом я удивился, почему существует группа TogglePaneButtonCollapsed
visualstate.Я приведу пример, чтобы помочь вам понять.
Во-первых, я думаю, что должен написать код XAML.Я заинтересован в TogglePaneButtonCollapsed VisualState из TogglePaneGroup.
<Style x:Key="NavigationViewStyle1" TargetType="NavigationView">
<Setter Property="PaneToggleButtonStyle"
Value="{StaticResource PaneToggleButtonStyle}"/>
<Setter Property="IsTabStop"
Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="NavigationView">
<Grid x:Name="RootGrid">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="DisplayModeGroup">
<VisualState x:Name="Compact"/>
<VisualState x:Name="Expanded">
<VisualState.Setters>
<Setter Target="TogglePaneButton.Visibility" Value="Collapsed"/> <!-- I added-->
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Minimal">
<VisualState.Setters>
<Setter Target="HeaderContent.Margin" Value="48,5,0,0"/>
<Setter Target="TogglePaneButton.Visibility" Value="Collapsed"/> <!-- I added-->
</VisualState.Setters>
</VisualState>
<VisualState x:Name="MinimalWithBackButton">
<VisualState.Setters>
<Setter Target="HeaderContent.Margin" Value="104,5,0,0"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="TogglePaneGroup">
<VisualState x:Name="TogglePaneButtonVisible">
<VisualState.Setters>
<Setter Target="PaneContentGridToggleButtonRow.Height" Value="200"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="TogglePaneButtonCollapsed">
<VisualState.Setters>
<Setter Target="TogglePaneButton.Visibility" Value="Collapsed"/>
<Setter Target="PaneContentGridToggleButtonRow.Height" Value="2000"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup> .. omitted
Интересно, когда TogglePaneButtonCollapsed
работает.Я сделал размер окна App меньше и больше, но ни один из них не установил триггеры TogglePaneButtonCollapsed
("make Toggle ButtonRow. Height == 2000").Я добавил код в Expaned
и Minimal
в DisplayModegroup
, чтобы сделать видимость TogglePaneButton свернутой.Но он имеет высоту только 200 пикселей, как определено в TogglePaneButtonVisible
.не 2000 px Высота.
Насколько мне известно, в этом файле словаря нет триггера VisualState, а код триггера VisualState скрыт от разработчиков.правильно? ... и разработчик должен соблюдать имя Visualstate Group и VisualState.
, тогда последний вопрос: почему существует TogglePaneButtonCollapsed
Визуальное состояние и как я использую его без определения визуального триггера состояния?можно перегрузить курок?Спасибо за чтение моего поста.