删除针对 Windows 8.1,但 运行 Windows 10 的应用程序的高度限制?

Remove the height limit of an app targeting Windows 8.1, but running on Windows 10?

我的问题听起来很简单:是否可以删除 the height limit of an app, if it is targeting Windows 8.1,但也分发给 Windows 10 台设备?还是我唯一的选择只是将项目升级到目标 Windows 10,并为其分发一个单独的包?

相关问题:

.. 答案表明 "You could use reflection to call part of windows 10 sdk at runtime within your windows 8.1 app"。嗯,我翻遍了整个网络,也没找到这个神奇方法的正常解释。

您提到的方法是在 Windows 8.1 应用中使用反射在 运行 时间调用 ApplicationView.SetPreferredMinSize method,如下所示:

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) });
}

使用此方法,您可以重置首选最小尺寸并删除默认的 768 高度限制。

但请注意,在Windows 10、Windows 8.1 应用程序的ApplicaitonView 主要由系统控制。如非必要,请勿使用反射。