Window.SetTitleBar(UIElement) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当 为 true
时ExtendsContentIntoTitleBar
,在 XAML 元素上启用标题栏行为。
public:
virtual void SetTitleBar(UIElement ^ titleBar) = SetTitleBar;
void SetTitleBar(UIElement const& titleBar);
public void SetTitleBar(UIElement titleBar);
function setTitleBar(titleBar)
Public Sub SetTitleBar (titleBar As UIElement)
参数
- titleBar
- UIElement
用于支持标题栏行为的元素。
示例
此示例演示如何扩展窗口的内容区域,并将系统标题栏 Grid
替换为包含图标和标题文本的 。
<Window ... >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="32"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid x:Name="AppTitleBar">
<Image Source="Images/WindowIcon.png"
HorizontalAlignment="Left"
Width="16" Height="16"
Margin="8,0"/>
<TextBlock x:Name="AppTitleTextBlock" Text="App title"
TextWrapping="NoWrap"
Style="{StaticResource CaptionTextBlockStyle}"
VerticalAlignment="Center"
Margin="28,0,0,0"/>
</Grid>
<NavigationView Grid.Row="1">
<!-- Page content -->
</NavigationView>
</Grid>
</Window>
public MainWindow()
{
this.InitializeComponent();
ExtendsContentIntoTitleBar = true;
SetTitleBar(AppTitleBar); // skip call to this api to get a default custom title bar
}
注解
调用此方法以将系统标题栏替换为应用的自定义标题栏 UI。 指定的元素支持与系统标题栏相同的系统交互,包括拖动、双击以调整大小以及右键单击以显示系统菜单。 因此,指针输入 (鼠标、触摸、笔等) 元素及其子元素不再识别。
指定元素占用的矩形区域充当指针的标题栏,即使该元素被另一个元素阻止,或者该元素是透明的。
如果要在标题栏区域中放置交互式元素,可以使用 InputNonClientPointerSource API。 有关示例,请参阅 WinUI 库示例中的标题栏页。
将内容扩展到标题栏中
若要指定自定义标题栏,必须将 ExtendsContentIntoTitleBar 设置为 true
以隐藏默认的系统标题栏。 如果 ExtendsContentIntoTitleBar
为 false
,则对 的 SetTitleBar
调用没有任何影响。 自定义标题栏元素在应用窗口的正文中显示为普通 UI 元素,不会获取标题栏行为。
如果将 ExtendsContentIntoTitleBar 设置为 true
,但不调用 SetTitleBar
(或使用null
参数) 调用 SetTitlebar
,则会提供默认的自定义标题栏。 此默认标题栏在位置、宽度和高度上直接替换系统标题栏。 如果需要专用标题栏,可以使用“UIElement”调用 SetTitleBar,并获取标题UIElement
栏区域的位置、宽度和高度。 它可以 UIElement
托管在应用内容中的任何位置,而不仅仅是非工作区。
标题栏元素
只能将单个元素指定为标题栏。 如果需要多个元素,则可以将其指定为单个容器的子元素, (例如 Grid 或 StackPanel) 。
自定义标题栏在应用中未深入嵌套时效果最佳。 在 XAML 树中深入嵌套 UIElement 可能会导致不可预知的布局行为。 标题栏将始终为矩形。 对于非矩形 UIElement
,其矩形边框将用于标题栏的尺寸。
颜色
自定义标题栏使用 AppWindow 标题栏 实现。 因此,可以将 AppWindowTitleBar 主题 API 用于 、ButtonForegroundColor
、 等颜色ButtonBackgroundColor
。
早期版本(如) ) WindowCaptionBackground
中使用的基于资源 (主题已弃用,没有任何效果。