我一直在尝试根据屏幕大小对代码中的 UI 进行一些更改。当我开始在 UWP 中编写代码时,一切正常,但是当更改为 Web 程序集时,在更改窗口大小时没有发生任何更改,它只采用 MinWindowWidth="0" 的第一个视觉状态。
这是我运行的一些测试代码。 测试代码
我错过了什么吗?
我一直在尝试根据屏幕大小对代码中的 UI 进行一些更改。当我开始在 UWP 中编写代码时,一切正常,但是当更改为 Web 程序集时,在更改窗口大小时没有发生任何更改,它只采用 MinWindowWidth="0" 的第一个视觉状态。
这是我运行的一些测试代码。 测试代码
我错过了什么吗?
试着这样写
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="SizeGroup">
<VisualState x:Name="Large">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1000"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="MainContent.Background"
Value="Blue"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Small">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="MainContent.Background"
Value="Red"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
XAML 中声明的顺序很重要,因此您应该MinWindowWidth
先声明最大的,然后再声明较小的。在您的情况下,首先评估值为 0 的小值,并且始终为真。
您可以在此处跟踪错误