如何使用setter在XAML中设置默认样式?
如何通过VisualState Setter将控件还原为其默认样式如何使用setter在XAML中设置默认样式?,xaml,windows-10,win-universal-app,Xaml,Windows 10,Win Universal App,如何通过VisualState Setter将控件还原为其默认样式 <VisualStateGroup> <VisualState> <VisualState.StateTriggers> <pbixaml:DeviceTypeTrigger DeviceType="Other"/> </Visual
<VisualStateGroup>
<VisualState>
<VisualState.StateTriggers>
<pbixaml:DeviceTypeTrigger DeviceType="Other"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="flip.Style" Value="{x:Null}"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
我尝试使用null,但没有成功(实际上被忽略)。我该怎么做呢?您可以为控件指定一个空样式(有点像hack…):
但我建议你做相反的事情,只在你希望的状态下设置样式,而不是在你不希望的状态下清除样式
<VisualStateGroup>
<VisualState>
<VisualState.StateTriggers>
<pbixaml:DeviceTypeTrigger DeviceType="[AllKnown]"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="flip.Style" Value="[What you usually want]"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
..
..
<FlipView .... /> <!-- do not set style here ->
..
..
要将任何VisualState setter重置为默认值,请使用空字符串
<VisualStateGroup>
<VisualState>
<VisualState.StateTriggers>
<pbixaml:DeviceTypeTrigger DeviceType="Other"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="flip.Style" Value=""/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
对于默认值,我指的是在XAML代码中设置的样式:
<FlipView x:Name="flip" Text="Test" />
此时,VisualState将恢复为默认的内置Windows样式
<FlipView x:Name="flip" Style="{StaticResource MyGreenStyle}" Text="Test" />
在这里,您的VisualState将恢复用于MyGreenStyle
的任何其他样式
<FlipView x:Name="flip" Style="{StaticResource MyGreenStyle}" Text="Test" />