【问题标题】:How to set minimum height for a Windows 8.1 app?如何为 Windows 8.1 应用程序设置最小高度?
【发布时间】:2019-02-07 22:14:42
【问题描述】:

对于 Windows 10 UWP 应用,我们对最大最小窗口大小有 ApplicationView.SetPreferredMinSize()500 x 500 限制。但是 Windows 8.1 应用程序呢?有没有类似的 API 来设置应用程序窗口的最小宽度和高度?

似乎空白 Windows 8.1 应用的默认最小高度明显大于空白 Windows 10 UWP 应用的高度,我找不到可以设置或更改的位置。

【问题讨论】:

  • win8.x 应用程序设计为始终全屏运行,因此没有这样的 API
  • @magicandre1981 确实如此。问题是在 Windows 10 上,它们现在在窗口模式下运行,并应用了一些最小高度和宽度限制,所以我想知道现在是否可以为它们更改这个最小高度和宽度。
  • Jay 的回答也是我的建议。使用反射来获取 API(这里你在 Win10 上并调用它)。在 Win8 中这会失败,所以忽略它并全屏运行应用程序

标签: c# windows-8.1 win-universal-app windows-10 windows-8.1-universal


【解决方案1】:

我想知道现在是否可以更改它们的最小高度和宽度。

是的,我们可以使用反射在 Windows 8.1 应用程序的运行时调用 ApplicationView.SetPreferredMinSize 方法来实现您想要的。以下是一个简单的示例:

var appView = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView();
var setPreferredMinSizeMethod = appView.GetType().GetRuntimeMethod("SetPreferredMinSize", new Type[] { typeof(Size) });

if (setPreferredMinSizeMethod != null)
{
    setPreferredMinSizeMethod.Invoke(appView, new object[] { new Size(300, 300) });
}

使用此方法后,您可以更改应用的最小高度和宽度:

但请注意,在 Windows 10 上,Windows 8.1 应用的 ApplicaitonView 主要由系统控制。如果没有必要,请不要使用反射来执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多