自适应触发器在 UNO 平台 webassembly 中不起作用?
AdaptiveTriggers not working in UNO platform web assembly?
我一直在尝试根据屏幕尺寸对代码中的 UI 进行一些更改。当我开始在 UWP 中编写代码时,一切正常,但是当更改为 Web 程序集时,更改 window 的大小时没有发生任何变化,它只采用 MinWindowWidth="0" 的第一个视觉状态。
这里是我运行的一些测试代码。
testing code
我是不是漏掉了什么?
试试这样写
<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 的小值并且始终为真。
您可以跟踪错误 here
我一直在尝试根据屏幕尺寸对代码中的 UI 进行一些更改。当我开始在 UWP 中编写代码时,一切正常,但是当更改为 Web 程序集时,更改 window 的大小时没有发生任何变化,它只采用 MinWindowWidth="0" 的第一个视觉状态。
这里是我运行的一些测试代码。 testing code
我是不是漏掉了什么?
试试这样写
<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 的小值并且始终为真。
您可以跟踪错误 here