标题栏高度不一致 returns

Inconsistent TitleBar Height returns

长话短说,我尝试运行这个特定的代码

CoreApplicationViewTitleBar coreTitleBar = CoreApplication.GetCurrentView().TitleBar;
coreTitleBar.ExtendViewIntoTitleBar = true;
dragarea.Height = coreTitleBar.Height;
HamBut.Margin = new Thickness(0, dragarea.Height, 0, 0);
Window.Current.SetTitleBar(dragarea);

当我第一次运行它时,coreTitleBar.Heightreturns32。但是,当我尝试re-run它时,它returns0 .

这应该是一个错误,还是我做错了?

目前正在使用 Visual Studio 2017 RC。

这取决于代码是什么时候运行,是的,UWP 对此不是很一致。

什么the docs don't explicitly mention需要订阅coreTitleBar.LayoutMetricsChanged事件,然后在回调中更新高度。这将说明标题栏的大小因某种原因发生变化的情况。

coreTitleBar.LayoutMetricsChanged += delegate
{
  dragarea.Height = coreTitleBar.Height;
  HamBut.Margin = new Thickness(0, dragarea.Height, 0, 0);
};

而且它还消除了 "but it's zero sometimes" 问题。