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
- Наследование
- Атрибуты
Примеры
Совет
Дополнительные сведения, рекомендации по проектированию и примеры кода см. в статье Адаптивные макеты с помощью 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) |