AdaptiveTrigger 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示根據視窗屬性套用視覺狀態的宣告式規則。
/// [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 變更。 當您在 XAML 標記中使用 AdaptiveTriggers 時,您不需要處理 Window.SizeChanged 事件,並在程式碼中呼叫 VisualStateManager.GoToState 。 此外,當您在 VisualStateManager中使用 AdaptiveTriggers 時,可以直接在 Microsoft Visual Studio 的 XAML 設計介面上看到這些自適性變更的效果。
您可以獨立或彼此搭配使用 MinWindowWidth 和 MinWindowHeight 屬性。 此 XAML 示範同時使用這兩個屬性的範例。 觸發程式表示當目前的視窗寬度為 > = 720 有效圖元,而目前的視窗高度為 > = 900 有效圖元時,就會套用對應的VisualState。
<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) |
註冊通知函式,以接聽此DependencyObject實例上特定DependencyProperty的變更。 (繼承來源 DependencyObject) |
SetActive(Boolean) |
設定值,指出狀態觸發程式是否為使用中。 (繼承來源 StateTriggerBase) |
SetValue(DependencyProperty, Object) |
在 DependencyObject上設定相依性屬性的本機值。 (繼承來源 DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
取消先前透過呼叫 RegisterPropertyChangedCallback註冊的變更通知。 (繼承來源 DependencyObject) |