Flyout 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示顯示輕量型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>
- 繼承
- 屬性
範例
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 情境:
- FlyoutBase.AttachedFlyout:一個附加屬性,將 Flyout 與特定 UI 元素關聯(可為任何 FrameworkElement 衍生類別)。
- ShowAttachedFlyout:一種靜態方法,可透過 FlyoutBase.AttachedFlyout 指派判斷飛出是否已與 UI 元素相關聯。 如果是這樣,該方法會內部呼叫 ShowAt ,使用你指定的 FrameworkElement 。
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 應用程式中回傳 |
| DispatcherQueue |
得到 |
| ElementSoundMode |
取得或設定一個值,指定控制項偏好是否播放聲音。 (繼承來源 FlyoutBase) |
| FlyoutPresenterStyle | |
| 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 |
|---|---|
| Closed |
當飛出被隱藏時會發生。 (繼承來源 FlyoutBase) |
| Closing |
當飛出開始被隱藏時,會發生這種情況。 (繼承來源 FlyoutBase) |
| Opened |
當顯示飛出時會發生。 (繼承來源 FlyoutBase) |
| Opening |
發生在飛出畫面出現之前。 (繼承來源 FlyoutBase) |