Flyout 类

定义

表示显示信息或需要用户交互的轻型 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
属性

示例

提示

有关详细信息、设计指南和代码示例,请参阅 浮出控件

WinUI 3 库应用包括大多数 WinUI 3 控件、特性和功能的交互式示例。 通过 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 改为接收焦点。 为此,请在浮出控件演示器样式上将 UIElement.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

始终在Windows 应用 SDK应用中返回 null 。 请改用 DispatcherQueue

(继承自 DependencyObject)
DispatcherQueue

获取 DispatcherQueue 与此 对象关联的 。 DispatcherQueue表示可以访问 DependencyObject UI 线程上的 的功能,即使代码是由非 UI 线程启动的。

(继承自 DependencyObject)
ElementSoundMode

获取或设置一个值,该值指定控件是否播放声音的首选项。

(继承自 FlyoutBase)
FlyoutPresenterStyle

获取或设置应用于浮出控件内容的样式

FlyoutPresenterStyleProperty

获取 FlyoutPresenterStyle 依赖属性的标识符。

InputDevicePrefersPrimaryCommands

获取一个值,该值指示用于打开浮出控件的输入设备是否不容易打开辅助命令。

(继承自 FlyoutBase)
IsConstrainedToRootBounds

获取一个值,该值指示浮出控件是否显示在 XAML 根的边界内。 此属性对于Windows 应用 SDK应用始终为 true

(继承自 FlyoutBase)
IsOpen

获取一个值,该值指示浮出控件是否打开。

(继承自 FlyoutBase)
LightDismissOverlayMode

获取或设置一个值,该值指定是否将 浅色消除 UI 外部的区域变暗。

(继承自 FlyoutBase)
OverlayInputPassThroughElement

获取或设置一个元素,该元素应接收指针输入事件,即使在浮出控件的覆盖层下也是如此。

(继承自 FlyoutBase)
Placement

获取或设置要用于浮出控件的默认放置位置,相对于其放置目标。

(继承自 FlyoutBase)
ShouldConstrainToRootBounds

获取或设置一个值,该值指示是否应在 XAML 根的边界内显示浮出控件。

(继承自 FlyoutBase)
ShowMode

获取或设置一个值,该值指示浮出控件在显示时的行为方式。

(继承自 FlyoutBase)
SystemBackdrop

获取或设置要应用于此浮出控件的系统背景。 背景呈现在浮出控件内容后面。

(继承自 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)

适用于

另请参阅