繁体   English   中英

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

[英]Get default TitleBar height programmatically before a titlebar is created?

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

每当CoreTitleBar_LayoutMetricsChanged的尺寸发生变化(例如 DPI 的变化)时,上面的代码CoreTitleBar_LayoutMetricsChanged自动调用您的函数( CoreTitleBar_LayoutMetricsChanged )。 在这里, MyAppTitleBar是我为自定义标题栏制作的Grid

更多信息可以在这里找到

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM