【发布时间】:2023-04-05 04:20:01
【问题描述】:
我正在使用 Style 来自定义我的组件:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<StackPanel.Resources>
<Style TargetType="Button">
<Setter Property="Height" Value="80"/>
<Setter Property="Width" Value="80"/>
<Setter Property="Margin" Value="10"/>
</Style>
</StackPanel.Resources>
<Button Content="Listas"/>
<Button Content="Filas"/>
<Button Content="Pilhas"/>
</StackPanel>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="VisualStatePhone">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0"/>
</VisualState.StateTriggers>
<VisualState.Setters>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateTablet">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="Button.Width" Value="100"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateDesktop">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="800"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="Button.Width" Value="200"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
但我不知道如何使用 VisualStateManager 更改样式。我想在按钮、文本块等目标上应用样式,然后更改这些样式的属性。
【问题讨论】:
-
您能详细说明您要更改的样式吗?您是要更改样式中的值还是要将样式替换为另一个?
-
这两个选项都有效,@JamesCroft。但我宁愿更改 Style 中的值。
标签: xaml styles uwp visualstatemanager