1

我一直在尝试根据屏幕大小对代码中的 UI 进行一些更改。当我开始在 UWP 中编写代码时,一切正常,但是当更改为 Web 程序集时,在更改窗口大小时没有发生任何更改,它只采用 MinWindowWidth="0" 的第一个视觉状态。

这是我运行的一些测试代码。 测试代码

我错过了什么吗?

4

1 回答 1

2

试着这样写

<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 的小值,并且始终为真。

您可以在此处跟踪错误

于 2020-02-17T18:41:48.373 回答