TitleBar
位于窗口顶部、可放置自有内容的标题栏,即 uikit:TitleBar。
示例可交互
Live demo unavailable
<Border Width="480" Height="140" HorizontalAlignment="Left" BorderThickness="1"
BorderBrush="{DynamicResource UIKit.WindowFrame}" Background="{DynamicResource UIKit.Background}">
<DockPanel>
<!-- In a window with ExtendClientAreaToDecorationsHint, the caption buttons show by themselves. -->
<uikit:TitleBar DockPanel.Dock="Top" ShowsCaptionButtons="True">
<TextBlock Text="My Application" FontSize="14" FontWeight="Medium" />
<StackPanel Orientation="Horizontal" Spacing="8" Margin="8,0">
<Button Classes="ghost small icon-only">
<PathIcon Data="{StaticResource UIKit.Icon.Github}" />
</Button>
<Button Classes="ghost small compact icon-only">
<PathIcon Data="{StaticResource UIKit.Icon.Bell}" />
</Button>
</StackPanel>
</uikit:TitleBar>
<TextBlock Text="Window content" Margin="16" Foreground="{DynamicResource UIKit.MutedForeground}" />
</DockPanel>
</Border>用法
uikit:TitleBar 就是 Title Bar 中的那条标题栏,但以控件形式由应用放在窗口内容的顶部,并可承载任意内容:标题、菜单、按钮。其子元素沿标题栏排列,第一个在起始端、最后一个在末端,垂直居中,内缩 12px(UIKit.TitleBar.Padding)。
<Window ExtendClientAreaToDecorationsHint="True" WindowDecorations="{OnPlatform BorderOnly, macOS=Full}">
<DockPanel>
<uikit:TitleBar DockPanel.Dock="Top">
<TextBlock Text="My Application" FontSize="14" FontWeight="Medium" />
<Button Classes="ghost small icon-only"><PathIcon Data="{StaticResource UIKit.Icon.Bell}" /></Button>
</uikit:TitleBar>
</DockPanel>
</Window>窗口会把客户区扩展到装饰区域。在 Windows 与 Linux 上,WindowDecorations="BorderOnly" 会去掉 Avalonia 绘制的标题栏并保留窗口边框;在 Linux 上,边框及其阴影绘制在内容周围,应用需要让内容保持在窗口的 WindowDecorationMargin 之内。在 macOS 上,窗口保留其交通灯按钮,标题栏为它们留出 80px。拖动标题栏的空白区域或其文字会移动窗口,双击则最大化或还原;标题栏中的可聚焦控件保留自己的输入处理。在 Windows 与 Linux 上,标题栏末尾是窗口所允许的最小化、最大化(最大化时为还原)与关闭按钮;ShowsCaptionButtons 控制是否显示它们,默认在窗口扩展到装饰区域时显示。