AdaptiveTriggers не работают в веб-сборке платформы UNO? - PullRequest
1 голос
/ 17 февраля 2020

Я пытался внести некоторые изменения в пользовательский интерфейс в моем коде в зависимости от размера экрана. Когда я начал кодировать в UWP, все работало как надо, но при переходе на веб-сборку не происходило никаких изменений при изменении размера окна, он принимает только первое визуальное состояние MinWindowWidth = "0".

Вот тестовый код, который я запустил. код тестирования

Я что-то упустил?

1 Ответ

1 голос
/ 17 февраля 2020

Попробуйте написать это следующим образом

<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 оценивается первым и всегда верным.

Вы можете отследить ошибку здесь

...