我正在为我的 uwp 应用创建自定义标题栏。我想匹配系统栏的高度。
我也许能得到那个高度的召唤
CoreApplication.GetCurrentView().TitleBar.Height
但这取决于很多事情。标题栏可能尚未调整大小。
我还看到了一个建议(来自 winforms(,查看窗口顶部和内容视图顶部的 y 坐标的差异。但这似乎又是可疑的。首先,一旦我将ExtendViewIntoTitleBar设置为true,我认为该方法将不起作用。
有没有可靠的方法以编程方式获取默认高度?
我知道这个答案可能对最初问的人没有用,但我现在仍然想建议答案:
可以在标题栏大小更改时注册处理程序。(文档提到了大小变化,但可能只是标题按钮偏移量而不是高度(这段代码对我来说效果很好,至少目前是这样
//Put the below line in the Page initialization/OnNavigated function
var coreTitleBar = CoreApplication.GetCurrentView().TitleBar;
coreTitleBar.ExtendViewIntoTitleBar = true;
coreTitleBar.LayoutMetricsChanged += CoreTitleBar_LayoutMetricsChanged;
private void CoreTitleBar_LayoutMetricsChanged(CoreApplicationViewTitleBar sender, object args)
{
MyAppTitleBar.Height = sender.Height;
}
上面的代码在标题栏的尺寸发生变化(如 DPI 的变化(时自动调用您的函数 ( CoreTitleBar_LayoutMetricsChanged
(。在这里,MyAppTitleBar
是我为自定义标题栏制作的Grid
。
更多信息可以在这里找到