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 .../>
- Наследование
- Атрибуты
Требования к 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) |