xaml - 如何使用 Setters 在 XAML 中设置默认样式?

标签 xaml windows-10 win-universal-app

如何通过 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>

我尝试使用 null,但没有用(实际上被忽略了)。我该怎么做?

最佳答案

您可以为控件分配一个空样式(有点 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>

但我建议你做相反的事情,只在你想要的状态下设置样式,而不是在你不需要的状态下清除样式。

<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 ->

这样,当 [AllKnown] 设备类型未激活时,视觉状态管理器会清除样式。

关于xaml - 如何使用 Setters 在 XAML 中设置默认样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33788382/

相关文章:

mysql - 对 MySQL 5.7 在 Windows 10 上使用的设置感到困惑

c# - 如何在uwp中使用OSM离线 map ?

c# - 哪些 SQLite.Net.Attributes 忽略对象字段作为列?

c# - 是否可以通过数据绑定(bind)项来控制单个 ListView 项的选定、指针悬停和按下状态

android - 使用适用于 Android 和 IOS 的 Xamarin Forms,如何显示 4 种独特状态的状态指示器

c++ - Visual Studio 2017 C++ 项目中的 Libavcodec "the procedure entry point for av_frame_alloc could not be located"错误

c# - 即使已添加转换器,也不会调用 Windows Phone 8.1 图像分辨率转换器

c# - 如何在 Windows 通用应用程序中显示来自网络文件夹或本地驱动器的图像

c# - UWP,在 Windows 之间传递信息

c# - "ValidateAppxPackage"任务意外失败