【问题标题】:Inconsistent TitleBar Height returns不一致的标题栏高度返回
【发布时间】:2017-06-06 21:49:59
【问题描述】:

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

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。

【问题讨论】:

  • 我测试它总是返回0。除非我点击最小化按钮或任务栏上的图标,否则它将返回32。
  • 奇怪。我也得到了和你一样的结果。同样,它不应该像那样发生。

标签: c# uwp height titlebar


【解决方案1】:

这取决于代码何时运行,是的,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);
};

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多