Flyout 類別

定義

表示顯示輕量型UI的控件,該UI是資訊,或需要用戶互動。 不同於對話框,飛出視窗可以透過按兩下或點選視窗外部、按下裝置的返回按鈕或按下 'Esc' 鍵來關閉。

/// [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)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="Content")]
class Flyout : FlyoutBase
[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)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="Content")]
public class Flyout : FlyoutBase
Public Class Flyout
Inherits FlyoutBase
<Flyout>
    singleUIElement
</Flyout>

繼承
Object IInspectable DependencyObject FlyoutBase Flyout
屬性

Windows 需求

裝置系列
Windows 10 (已於 10.0.10240.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)

範例

提示

如需詳細資訊、設計指引和程式碼範例,請參閱 飛出視窗

WinUI 2 資源庫應用程式包含大部分 WinUI 2 控制件、特性和功能的互動式範例。 從 Microsoft Store 取得應用程式,或在 GitHub 上取得原始程式碼。

備註

飛出視窗會顯示需要用戶互動的訊息。

飛出視窗控制項

使用飛出視窗控制項來收集資訊、顯示詳細資訊,或用於警告和確認。 不同於對話框,飛出視窗不會建立個別的視窗,也不會封鎖其他用戶互動。 若要顯示專案的功能表,請改用 MenuFlyout 。 如需詳細資訊,包括 XAML 和程式碼範例,請參閱 快速入門:新增飛出視窗

飛出視窗控件 (或 MenuFlyout) 會當做 Button.Flyout 屬性的值使用。 這通常會在 XAML 中設定為頁面 UI 定義的一部分。 Button 是唯一具有專用 飛出視窗 屬性的控件。 若要建立飛出視窗與其他控件的關聯,請使用 FlyoutBase.AttachedFlyout 附加屬性。 當設定為 Button.Flyout 時,飛出視窗會在點選或叫用按鈕時顯示。 使用 FlyoutBase.AttachedFlyout 將飛出視窗指派給其他 UI 元素時,您必須呼叫 ShowAt 方法或靜態 ShowAttachedFlyout 方法來顯示飛出視窗。

除了此參考主題中所列的成員之外,還有基類 FlyoutBase 的其他成員,通常用於一般 Flyout 案例:

協助工具選項

例如,如果您使用沒有可設定焦點內容的飛出視窗,但只有文字,您應該採取一些額外的步驟,以確保您的內容可供存取。 具體而言,您必須確保 Windows 朗讀程式或其他螢幕助讀程式可以讀取飛出視窗的內容。

含有文字內容的飛出視窗控制件

根據預設, FlyoutPresenter 上已設定屬性,以防止它接收焦點。 當飛出視窗內的內容可以接收焦點時,這是所需的行為。 不過,如果飛出視窗內的內容無法接收焦點,您應該更新為 FlyoutPresenterStyle ,讓 FlyoutPresenter 改為接收焦點。 若要這樣做,請將 IsTabStop 設定為 true ,並將 TabNavigation 設定為飛出視窗演示者樣式上的 Cycle

此範例示範如何讓 FlyoutPresenter 接收焦點,以便存取內容。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Button VerticalAlignment="Center" HorizontalAlignment="Center"
            Content="Open flyout">
        <Button.Flyout>
            <Flyout>
                <Flyout.FlyoutPresenterStyle>
                    <Style TargetType="FlyoutPresenter">
                        <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Disabled"/>
                        <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
                        <Setter Property="IsTabStop" Value="True"/>
                        <Setter Property="TabNavigation" Value="Cycle"/>
                    </Style>
                </Flyout.FlyoutPresenterStyle>
                <TextBlock TextWrapping="Wrap" Text="This is some text in a flyout."/>
            </Flyout>
        </Button.Flyout>
    </Button>
</Grid>

建構函式

Flyout()

初始化 Flyout 類別的新實例。

屬性

AllowFocusOnInteraction

取得或設定值,這個值表示當使用者與其互動時,專案是否會自動取得焦點。

(繼承來源 FlyoutBase)
AllowFocusWhenDisabled

取得或設定值,指定控件在停用時是否可以接收焦點。

(繼承來源 FlyoutBase)
AreOpenCloseAnimationsEnabled

取得或設定值,這個值表示當飛出窗口開啟或關閉時,是否播放動畫。

(繼承來源 FlyoutBase)
Content

取得或設定 飛出視窗的內容。

ContentProperty

取得 Content 相依性屬性的標識碼。

Dispatcher

取得這個 對象相關聯的 CoreDispatcherCoreDispatcher 代表可在 UI 線程上存取 DependencyObject 的功能,即使程式代碼是由非 UI 線程起始也一樣。

(繼承來源 DependencyObject)
ElementSoundMode

取得或設定值,指定控件是否播放音效的喜好設定。

(繼承來源 FlyoutBase)
FlyoutPresenterStyle

取得或設定套用至飛出窗口內容的 Style

FlyoutPresenterStyleProperty

取得 FlyoutPresenterStyle 相依性屬性的標識碼。

InputDevicePrefersPrimaryCommands

取得值,指出用來開啟飛出視窗的輸入設備是否不容易開啟次要命令。

(繼承來源 FlyoutBase)
IsConstrainedToRootBounds

取得值,這個值表示飛出視窗是否顯示在 XAML 根目錄的界限內。

(繼承來源 FlyoutBase)
IsOpen

取得值,這個值表示飛出視窗是否開啟。

(繼承來源 FlyoutBase)
LightDismissOverlayMode

取得或設定值,這個值會指定 淺色關閉 UI 外部的區域是否變深。

(繼承來源 FlyoutBase)
OverlayInputPassThroughElement

取得或設定即使飛出視窗重疊下方的指標輸入事件,也應該接收指標輸入事件的專案。

(繼承來源 FlyoutBase)
Placement

取得或設定要用於飛出視窗的預設放置位置,相對於其放置目標。

(繼承來源 FlyoutBase)
ShouldConstrainToRootBounds

取得或設定值,這個值表示是否應該在 XAML 根目錄的界限內顯示飛出視窗。

(繼承來源 FlyoutBase)
ShowMode

取得或設定值,這個值表示顯示飛出窗口的行為。

(繼承來源 FlyoutBase)
Target

取得要當做飛出視窗放置目標的 元素。

(繼承來源 FlyoutBase)
XamlRoot

取得或設定檢視這個飛出視窗的 XamlRoot。

(繼承來源 FlyoutBase)

方法

ClearValue(DependencyProperty)

清除相依性屬性的本機值。

(繼承來源 DependencyObject)
CreatePresenter()

在衍生類別中覆寫時,初始化 控件,以針對衍生控件顯示飛出視窗內容。 注意:這個方法沒有基類實作,而且必須在衍生類別中覆寫。

(繼承來源 FlyoutBase)
GetAnimationBaseValue(DependencyProperty)

傳回為相依性屬性建立的任何基底值,如果動畫未使用中,則適用此屬性。

(繼承來源 DependencyObject)
GetValue(DependencyProperty)

DependencyObject 傳回相依性屬性的目前有效值。

(繼承來源 DependencyObject)
Hide()

關閉飛出視窗。

(繼承來源 FlyoutBase)
OnProcessKeyboardAccelerators(ProcessKeyboardAcceleratorEventArgs)

在應用程式中處理快捷鍵 (快捷鍵) 之前呼叫。 每當應用程式程式代碼或內部進程呼叫 ProcessKeyboardAccelerators 時叫用。 覆寫此方法以影響預設加速器處理。

(繼承來源 FlyoutBase)
ReadLocalValue(DependencyProperty)

如果已設定本機值,則傳回相依性屬性的本機值。

(繼承來源 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

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

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

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

(繼承來源 DependencyObject)
ShowAt(DependencyObject, FlyoutShowOptions)

使用指定的選項顯示相對於指定專案放置的飛出視窗。

(繼承來源 FlyoutBase)
ShowAt(FrameworkElement)

顯示相對於指定專案放置的飛出視窗。

(繼承來源 FlyoutBase)
TryInvokeKeyboardAccelerator(ProcessKeyboardAcceleratorEventArgs)

嘗試叫用快捷鍵 (快捷鍵) 。

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

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

(繼承來源 DependencyObject)

事件

Closed

發生於隱藏飛出視窗時。

(繼承來源 FlyoutBase)
Closing

發生於飛出視窗開始隱藏時。

(繼承來源 FlyoutBase)
Opened

發生於顯示飛出視窗時。

(繼承來源 FlyoutBase)
Opening

發生於顯示飛出視窗之前。

(繼承來源 FlyoutBase)

適用於

另請參閱