Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 标题栏高度返回不一致_C#_Uwp_Height_Titlebar - Fatal编程技术网

C# 标题栏高度返回不一致

C# 标题栏高度返回不一致,c#,uwp,height,titlebar,C#,Uwp,Height,Titlebar,长话短说,我试图运行这个特定的代码 CoreApplicationViewTitleBar coreTitleBar = CoreApplication.GetCurrentView().TitleBar; coreTitleBar.ExtendViewIntoTitleBar = true; dragarea.Height = coreTitleBar.Height; HamBut.Margin = new Thickness(0, dragarea.Height, 0, 0); Window

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

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
返回32。但是,当我试图重新运行它时,它返回0

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


目前正在使用Visual Studio 2017 RC。

这取决于代码运行的时间,是的,UWP对此并不十分一致

您需要订阅
coretTitleBar.LayoutMetricsChanged
事件,然后在回调中更新高度。这将说明标题栏的大小因某种原因而改变的情况

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

它还消除了“但有时为零”的问题。

我测试它总是返回0。除非我单击最小化按钮或任务栏上的图标,否则它将返回32.5秒。我也得到了一个像你一样的微笑结果。再说一次,不应该发生这样的事。