标题栏高度不一致 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.Height
returns32。但是,当我尝试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" 问题。
长话短说,我尝试运行这个特定的代码
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.Height
returns32。但是,当我尝试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" 问题。