如何在桌面上设置windows universal app的最小尺寸?

时间:2016-03-04 08:39:18

标签: win-universal-app windows-10-universal windows-10-desktop

我想在台式机上为我的Windows通用应用设置最小尺寸800x600。

我找到了一个方法

ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size(800, 600));

但它不起作用,我仍然可以将窗口拖动到500x300。

我想念的是什么?

3 个答案:

答案 0 :(得分:2)

我找到了解决方案https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.viewmanagement.applicationview.tryresizeview

对于桌面,我可以设置一个大于500x500的最小尺寸,如下面的代码。

private void Page_SizeChanged(object sender, SizeChangedEventArgs e)
{
    if (e.NewSize.Width < 800 || e.NewSize.Height < 600)
    {
        ApplicationView.GetForCurrentView().TryResizeView(new Size(800, 600));
    }
}

答案 1 :(得分:1)

来自MSDN:

  

允许的最大尺寸为500 x 500有效像素。如果你   设置一个超出这些边界的值,它被强制在其中   允许范围。

也许这就是原因

MSDN Page

答案 2 :(得分:0)

对于我的应用程序,我将其设置为在桌面上以480的启动高度和320的宽度运行。

在我的主页文件后面的代码中,我调用以下方法:

    public MainPage()
    {
      GetDeviceFormFactorType();
    }


       public static DeviceFormFactorType GetDeviceFormFactorType()
    {
        switch (AnalyticsInfo.VersionInfo.DeviceFamily)
        {
            case "Windows.Mobile":
                return DeviceFormFactorType.Phone;
            case "Windows.Desktop":
                ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size { Width = 320, Height = 480 });
                ApplicationView.PreferredLaunchViewSize = new Size { Height = 480, Width = 320 };
                ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
                return DeviceFormFactorType.Desktop;
            case "Windows.Tablet":
                return DeviceFormFactorType.Tablet;
            case "Windows.Universal":
                return DeviceFormFactorType.Iot;
            case "Windows.Team":
                return DeviceFormFactorType.SurfaceHub;
            default:
                return DeviceFormFactorType.other;
        }
    }


        public enum DeviceFormFactorType
    {
        Phone,
        Desktop,
        Tablet,
        Iot,
        SurfaceHub,
        other
    }