[英]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.