語言

Flyout 類別

定義

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

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

繼承
Object IInspectable DependencyObject FlyoutBase Flyout
屬性

範例

Tip

更多資訊、設計指導及程式碼範例,請參見 Flyout。

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

備註

Flyout 顯示需要使用者互動的訊息。

飛出控制

使用飛出控制來收集資訊、顯示更多資訊,或進行警告與確認。 與對話框不同,Flyout 不會建立獨立視窗,也不會阻擋其他使用者互動。 若要顯示項目選單,請使用 MenuFlyout 。 更多資訊,包括 XAML 及程式碼範例,請參閱 Flyouts。

Flyout 控制項(或 稱 MenuFlyout)作為 Button.Flyout 屬性的值。 這通常會在 XAML 中作為頁面 UI 定義的一部分設定。 按鈕 是唯一有專用飛 出 屬性的控制點。 若要將飛出(Flyout)與其他控制項關聯,請使用 FlyoutBase.AttachedFlyout attached 屬性。 當設定為 Button.Flyout 時,Flyout 會顯示按鈕被點擊或被呼叫。 當使用 FlyoutBase.AttachedFlyout 將 Flyout 指派給其他 UI 元素時,您必須呼叫 ShowAt 方法或靜態的 ShowAttachedFlyout 方法來顯示該 flyout。

除了本參考主題中列出的成員外, FlyoutBase 基礎類別中還有其他成員,這些成員經常用於典型的 Flyout 情境:

Accessibility

如果你使用沒有可聚焦內容的 Flyout——例如只有文字,如此所示——你應該採取額外措施確保內容可取得。 具體來說,你需要確保 Windows Narrator 或其他螢幕閱讀器能讀取 flyout 的內容。

帶有文字內容的飛出控制

預設情況下, FlyoutPresenter 上設定了某些屬性,阻止其獲得焦點。 這是當 Flyout 內部內容能獲得焦點時所期望的行為。 不過,如果 Flyout 內的內容無法獲得焦點,你應該更新到 FlyoutPresenterStyle ,讓 FlyoutPresenter 能獲得焦點。 要做到這點,請將 UIElement.IsTabStop 設為 true ,並將 TabNavigation 設為 Cycle ,並設定在 flyout presenter 風格中。

此範例展示了如何讓 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>

建構函式

名稱 Description
Flyout()

初始化 Flyout 類別的新實例。

屬性

名稱 Description
AllowFocusOnInteraction

會獲得或設定一個值,指示該元素在使用者互動時是否自動獲得焦點。

(繼承來源 FlyoutBase)
AllowFocusWhenDisabled

會取得或設定一個值,指定該控制在被禁用時是否能獲得焦點。

(繼承來源 FlyoutBase)
AreOpenCloseAnimationsEnabled

取得或設定一個值,指示在開啟或關閉飛出時是否播放動畫。

(繼承來源 FlyoutBase)
Content

取得或設定 飛出內容。

ContentProperty

取得 內容 依賴屬性的識別碼。

Dispatcher

它總是在 Windows 應用程式 SDK 應用程式中回傳 null 。 改用 DispatcherQueue 。

(繼承來源 DependencyObject)
DispatcherQueue

得到 DispatcherQueue 這個物件所關聯的那個。 代表 DispatcherQueue 一個功能,即使程式碼是由非 UI 執行緒發起,也能存取 UI DependencyObject 執行緒。

(繼承來源 DependencyObject)
ElementSoundMode

取得或設定一個值,指定控制項偏好是否播放聲音。

(繼承來源 FlyoutBase)
FlyoutPresenterStyle

取得或設定套用到 Flyout 內容的樣式。

FlyoutPresenterStyleProperty

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

InputDevicePrefersPrimaryCommands

會取得一個值,表示用於開啟飛出的輸入裝置是否容易開啟次要指令。

(繼承來源 FlyoutBase)
IsConstrainedToRootBounds

會得到一個值,表示飛出是否在 XAML 根的範圍內顯示。 這個屬性對於Windows 應用程式 SDK應用程式來說總是true。

(繼承來源 FlyoutBase)
IsOpen

會得到一個表示飛出是否開啟的值。

(繼承來源 FlyoutBase)
LightDismissOverlayMode

會取得或設定一個值,指定光 線關閉 介面外的區域是否變暗。

(繼承來源 FlyoutBase)
OverlayInputPassThroughElement

取得或設定一個元素,即使該元素在 flyout 覆蓋層下方,也應該接收指標輸入事件。

(繼承來源 FlyoutBase)
Placement

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

(繼承來源 FlyoutBase)
ShouldConstrainToRootBounds

取得或設定一個值,指示飛出是否應該在 XAML 根的範圍內顯示。

(繼承來源 FlyoutBase)
ShowMode

會取得或設定一個值,表示飛出在顯示時的行為。

(繼承來源 FlyoutBase)
SystemBackdrop

取得或設定系統背景以套用到這個飛出。 背景則被飛出內容渲染。

(繼承來源 FlyoutBase)
Target

取得該元素作為飛出的放置目標。

(繼承來源 FlyoutBase)
XamlRoot

取得或設定此飛出被觀看的 XamlRoot。

(繼承來源 FlyoutBase)

方法

名稱 Description
ClearValue(DependencyProperty)

清除依賴性財產的局部價值。

(繼承來源 DependencyObject)
CreatePresenter()

當在衍生類別中被覆寫時,初始化一個控制項,以顯示該衍生控制項所需的飛出內容。 注意:此方法沒有基底類別實作,必須在衍生類別中覆寫。

(繼承來源 FlyoutBase)
GetAnimationBaseValue(DependencyProperty)

回傳任何為相依屬性建立的基礎值,適用於動畫未啟用時。

(繼承來源 DependencyObject)
GetValue(DependencyProperty)

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

(繼承來源 DependencyObject)
Hide()

關閉飛球出局。

(繼承來源 FlyoutBase)
OnProcessKeyboardAccelerators(ProcessKeyboardAcceleratorEventArgs)

在應用程式處理鍵盤快捷鍵(加速器)之前,這段時間會被呼叫。 每當應用程式程式碼或內部程序呼叫 ProcessKeyboardAccelators 時會被呼叫。 覆寫此方法以影響預設加速器的處理方式。

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

事件

名稱 Description
Closed

當飛出被隱藏時會發生。

(繼承來源 FlyoutBase)
Closing

當飛出開始被隱藏時,會發生這種情況。

(繼承來源 FlyoutBase)
Opened

當顯示飛出時會發生。

(繼承來源 FlyoutBase)
Opening

發生在飛出畫面出現之前。

(繼承來源 FlyoutBase)

適用於

另請參閱