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 方向會變更為 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 變更。 當您在 XAML 標記中使用 AdaptiveTriggers 時,您不需要處理 Window.SizeChanged 事件,並在程式碼中呼叫 VisualStateManager.GoToState 。 此外,當您在 VisualStateManager中使用 AdaptiveTriggers 時,可以直接在 Microsoft Visual Studio 的 XAML 設計介面上看到這些自適性變更的效果。

您可以獨立或彼此搭配使用 MinWindowWidthMinWindowHeight 屬性。 此 XAML 示範同時使用這兩個屬性的範例。 觸發程式表示當目前的視窗寬度為 > = 720 有效圖元,而目前的視窗高度為 > = 900 有效圖元時,就會套用對應的VisualState

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

建構函式

AdaptiveTrigger()

初始化 AdaptiveTrigger 類別的新實例

屬性

Dispatcher

取得與此物件相關聯的 CoreDispatcherCoreDispatcher代表可以存取 UI 執行緒上DependencyObject的功能,即使程式碼是由非 UI 執行緒起始也一樣。

(繼承來源 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)

註冊通知函式,以接聽此DependencyObject實例上特定DependencyProperty的變更。

(繼承來源 DependencyObject)
SetActive(Boolean)

設定值,指出狀態觸發程式是否為使用中。

(繼承來源 StateTriggerBase)
SetValue(DependencyProperty, Object)

DependencyObject上設定相依性屬性的本機值。

(繼承來源 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

取消先前透過呼叫 RegisterPropertyChangedCallback註冊的變更通知。

(繼承來源 DependencyObject)

適用於

另請參閱