Поделиться через


AdaptiveTrigger Класс

Определение

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

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class AdaptiveTrigger : StateTriggerBase
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class AdaptiveTrigger : StateTriggerBase
Public Class AdaptiveTrigger
Inherits StateTriggerBase
<AdaptiveTrigger .../>
Наследование
Object IInspectable DependencyObject StateTriggerBase AdaptiveTrigger
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Примеры

Совет

Дополнительные сведения, рекомендации по проектированию и примеры кода см. в статье Адаптивные макеты с помощью XAML.

Если у вас установлено приложение коллекции WinUI 2 , откройте приложение, чтобы увидеть элементы управления в действии.

В этом примере показано, как использовать свойство StateTriggers с AdaptiveTrigger для создания декларативного правила в разметке XAML на основе размера окна. По умолчанию ориентация StackPanel имеет значение Vertical. Если ширина окна = >720 эффективных пикселей, активируется изменение VisualState , а ориентация StackPanel меняется на Горизонтальная.

<Page>
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup>
                <VisualState>
                    <VisualState.StateTriggers>
                    <!--VisualState to be triggered when window width is >=720 effective pixels.-->
                        <AdaptiveTrigger MinWindowWidth="720"/>
                    </VisualState.StateTriggers>

                    <VisualState.Setters>
                        <Setter Target="myPanel.Orientation" Value="Horizontal"/>
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <StackPanel x:Name="myPanel" Orientation="Vertical">
            <TextBlock Text="This is a block of text. It is text block 1. " 
                       Style="{ThemeResource BodyTextBlockStyle}"/>
            <TextBlock Text="This is a block of text. It is text block 2. " 
                       Style="{ThemeResource BodyTextBlockStyle}"/>
            <TextBlock Text="This is a block of text. It is text block 3. " 
                       Style="{ThemeResource BodyTextBlockStyle}"/>
        </StackPanel>
    </Grid>
</Page>

Более подробный пример см. в разделе Пример триггеров состояния.

Комментарии

Используйте AdaptiveTriggers для создания правил, которые автоматически активируют изменение VisualState , если окно имеет заданную высоту или ширину. При использовании AdaptiveTriggers в разметке XAML не нужно обрабатывать событие Window.SizeChanged и вызывать VisualStateManager.GoToState в коде . Кроме того, при использовании AdaptiveTriggers в VisualStateManager вы можете увидеть влияние этих адаптивных изменений непосредственно в области конструктора XAML в Microsoft Visual Studio.

Свойства MinWindowWidth и MinWindowHeight можно использовать как независимо, так и совместно друг с другом. В этом коде XAML показан пример совместного использования обоих свойств. Триггер указывает, что соответствующий параметр VisualState применяется, если текущая ширина окна = >720 эффективных пикселей, а текущая высота окна — >900 эффективных пикселей.

<AdaptiveTrigger MinWindowWidth="720" MinWindowHeight="900"/>

Конструкторы

AdaptiveTrigger()

Инициализирует новый экземпляр класса AdaptiveTrigger .

Свойства

Dispatcher

Возвращает CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу.

(Унаследовано от DependencyObject)
MinWindowHeight

Возвращает или задает минимальную высоту окна, при которой должен применяться VisualState .

MinWindowHeightProperty

Определяет свойство зависимости MinWindowHeight .

MinWindowWidth

Возвращает или задает минимальную ширину окна, при которой должен применяться VisualState .

MinWindowWidthProperty

Определяет свойство зависимости MinWindowWidth .

Методы

ClearValue(DependencyProperty)

Очищает локальное значение свойства зависимостей.

(Унаследовано от DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Возвращает любое базовое значение, установленное для свойства зависимостей, которое применяется в случаях, когда анимация не активна.

(Унаследовано от DependencyObject)
GetValue(DependencyProperty)

Возвращает текущее действующее значение свойства зависимостей из DependencyObject.

(Унаследовано от DependencyObject)
ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если задано локальное значение.

(Унаследовано от DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Регистрирует функцию уведомления для прослушивания изменений определенной DependencyProperty в этом экземпляре DependencyObject .

(Унаследовано от DependencyObject)
SetActive(Boolean)

Задает значение, указывающее, активен ли триггер состояния.

(Унаследовано от StateTriggerBase)
SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей для Объекта DependencyObject.

(Унаследовано от DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова метода RegisterPropertyChangedCallback.

(Унаследовано от DependencyObject)

Применяется к

См. также раздел