[英]How do I set a default style in XAML with Setters?
Via a VisualState Setter, how do I revert a control to its default style? 通过VisualState Setter,如何将控件还原为其默认样式?
<VisualStateGroup>
<VisualState>
<VisualState.StateTriggers>
<pbixaml:DeviceTypeTrigger DeviceType="Other"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="flip.Style" Value="{x:Null}"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
I tried using null, but that didn't work (was ignored actually). 我尝试使用null,但这不起作用(实际上被忽略)。 How do I do that?
我怎么做?
You can assign an empty style to the control (kind of hack...): 您可以为控件指定一个空样式(一种黑客......):
<VisualStateGroup>
<VisualState>
<VisualState.StateTriggers>
<pbixaml:DeviceTypeTrigger DeviceType="Other"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="flip.Style">
<Setter.Value>
<Style TargetType="FlipView"/>
</Setter.Value>
</Setter>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
But I suggest you to do the reverse thing, set the style only in states that you wish, instead of clearing the style in states that you don't. 但我建议你做相反的事情,只在你想要的状态下设置风格,而不是在你不喜欢的状态中清除风格。
<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 ->
in this way, when the [AllKnown] device type is not active, style is cleared by the visual state manager. 这样,当[AllKnown]设备类型未激活时,可视状态管理器清除样式。
To reset any VisualState setter to a default value, use an empty string. 要将任何VisualState setter重置为默认值,请使用空字符串。
<VisualStateGroup>
<VisualState>
<VisualState.StateTriggers>
<pbixaml:DeviceTypeTrigger DeviceType="Other"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="flip.Style" Value=""/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
With default value, I mean the style that has been set in your XAML code: 使用默认值,我的意思是在XAML代码中设置的样式:
<FlipView x:Name="flip" Text="Test" />
Here your VisualState will revert to the default built-in Windows style. 在这里,您的VisualState将恢复为默认的内置Windows样式。
<FlipView x:Name="flip" Style="{StaticResource MyGreenStyle}" Text="Test" />
Here your VisualState will revert whatever other style used to MyGreenStyle
. 在这里,您的VisualState将恢复用于
MyGreenStyle
任何其他样式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.