在创建标题栏之前以编程方式获取默认标题栏高度



我正在为我的 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

更多信息可以在这里找到

最新更新