AdaptiveTrigger Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет декларативное правило, которое применяет визуальные состояния на основе свойств окна.
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 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(Microsoft.UI.Xaml.WinUIContract), 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
- Наследование
- Атрибуты
Примеры
Tip
Дополнительные сведения, рекомендации по проектированию и примеры кода см. в разделе "Адаптивные макеты" с помощью XAML.
В следующем примере показано, как использовать свойство StateTriggers с AdaptiveTrigger целью создания декларативного правила в разметке XAML на основе размера окна. По умолчанию ориентация StackPanel имеет значение Vertical. Если ширина окна равна >720 эффективным пикселям, изменение VisualState активируется, а StackPanel ориентация изменяется на Horizontal.
<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 |
Всегда возвращается |
| DispatcherQueue |
Возвращает, |
| 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) |