【问题标题】:Get window width / height in Windows store apps在 Windows 商店应用程序中获取窗口宽度/高度
【发布时间】:2012-10-15 15:40:15
【问题描述】:

我目前有一个加载的基本页面,我需要一些方法来获取窗口的宽度和高度,最好是在构造函数中。问题是,在构造函数中,或者在页面完全加载之前,我似乎无法掌握宽度和高度。加载后我可以使用:

this.ActualWidth;
this.ActualHeight;

我可以使用任何窗口加载完成事件或在加载期间获取宽度和高度的任何方式吗?

【问题讨论】:

  • 在呈现控件之前不会计算它们。我不知道是否有办法在地铁中将它们放入代码中。在 WPF 中,我认为您可以只处理 OnResize 事件或类似事件。
  • @ptf 如果有帮助,您可以设置首选启动大小

标签: c# xaml windows-8 windows-store-apps


【解决方案1】:

您可以随时使用属性Window.Current.Bounds 找出窗口的大小。更多详情请阅读:How to get the resolution of screen? For a WinRT app?

【讨论】:

  • 我也依赖这个值。但我得到了奇怪的价值观。当我选择 10.6" 1366 x 768 时,这些边界设置为:(0, 0, 1371.429, 771.429)。所以看起来好像宽度和高度增加了 3.5 像素!?这也发生在实际设备上(表面高清)
【解决方案2】:

Here 是一篇关于如何处理SizeChanged 事件的博文。如果不执行此类操作,您将无法获得 ActualWidth/ActualHeight,因为它们是在呈现控件时计算的。

private void OnWindowSizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
{
    var CurrentViewState = Windows.UI.ViewManagement.ApplicationView.Value;
    double AppWidth = e.Size.Width;
    double AppHeight = e.Size.Height;

    // DownloadImage requires accurate view state and app size!
    DownloadImage(CurrentViewState, AppHeight, AppWidth);
}

Window.Current.SizeChanged += OnWindowSizeChanged;

【讨论】:

  • System.Diagnostics.Debug.WriteLine("w:{0} h:{1}", width, height);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多