Window.SetTitleBar(UIElement) 方法

定义

使 XAML 元素与系统交互,就像它是标题栏一样。

public:
 virtual void SetTitleBar(UIElement ^ value) = SetTitleBar;
void SetTitleBar(UIElement const& value);
public void SetTitleBar(UIElement value);
function setTitleBar(value)
Public Sub SetTitleBar (value As UIElement)

参数

value
UIElement

应充当标题栏的自定义 XAML 内容。 若要使用多个对象,请将它们包装在容器元素中,例如派生自 Panel 的容器元素。

注解

使用此方法可以指定与系统交互的 XAML 元素,就好像它是应用窗口的标题栏一样。 使用此方法时,通常会将 CoreApplicationViewTitleBar.ExtendViewIntoTitleBar 属性设置为 true ,以便隐藏默认的系统标题栏。 但是,即使默认系统标题栏未隐藏,也可用于使应用中的其他区域的行为与标题栏类似。

使用 CoreApplicationView.TitleBar 属性获取应用窗口的 CoreApplicationViewTitleBar 实例,如下所示。

// Requires using Windows.ApplicationModel.Core
CoreApplicationView coreView = CoreApplication.GetCurrentView();
CoreApplicationViewTitleBar coreTitleBar = coreView.TitleBar;
coreTitleBar.ExtendViewIntoTitleBar = true;

// -- OR --

CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true;

注意

当在移动设备上运行应用时,此方法不起作用,因为应用在移动设备上始终全屏显示,并且没有窗口标题栏。

输入

调用此方法以将 XAML UIElement 设置为标题栏时,它允许 Windows 像处理默认系统标题栏输入一样处理标题栏 UIElement 的输入。 例如,用户可以通过拖动 XAML UIElement 来移动窗口,或通过右键单击窗口上下文菜单来调用它。

这意味着,当用户使用触摸、鼠标或笔与目标 UIElement 或其子级交互时,你的应用不再接收指针输入。 但是,你仍必须处理 (或阻止) 键盘输入,并确定标题栏中的内容是否可以通过使用键盘按 Tab 键来接收焦点。

布局和外观

必须更新目标 UIElement 的视觉内容和布局,以响应标题栏更改,如可见性和大小。

若要匹配系统标题栏的可见性,请处理 CoreApplicationViewTitleBar.IsVisibleChanged 事件,并通过根据需要显示和隐藏自定义标题栏来尊重 CoreApplicationViewTitleBar.IsVisible 属性。 这可确保在隐藏系统标题栏时正确隐藏自定义标题栏内容;例如,当用户选择以全屏模式显示你的应用时。

若要确保标题栏与始终存在的系统“最小化”、“最大化”和“关闭”按钮等其他标题栏元素的大小匹配,请处理 CoreApplicationViewTitleBar.LayoutMetricsChanged 事件并遵循 CoreApplicationViewTitleBar.HeightSystemOverlayLeftInsetSystemOverlayRightInset 属性。

默认标题栏按钮(如“最小化”、“最大化”和“关闭”)始终由系统显示,因此你可能还希望修改其颜色以匹配自定义 XAML 标题栏内容。 为此,请使用 Windows.UI.ViewManagement.ApplicationView.TitleBar 属性获取应用窗口的 ApplicationViewTitleBar 实例。 然后,可以在 ApplicationViewTitleBar 上设置各种颜色属性,以修改默认按钮。

适用于