0

Я хотел бы установить минимальный размер, как 800x600 для моего окна универсального приложения, которое на рабочем столе.Как установить минимальный размер окна универсального приложения на рабочий стол?

Я нашел способ

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

, но он не работает, я все еще могу перетащить окно 500x300.

Что я пропущу?

+0

В каком методе вы написали эту строку кода? –

+0

Я следил за этим http://stackoverflow.com/questions/31885979/windows-10-uwp-app-setting-window-size-on-desktop – PatrickSCLin

+0

Это действительно странно ... –

ответ

1

Я нашел решение 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

Спасибо Патрику. Небольшое улучшение здесь: ApplicationView.GetForCurrentView(). TryResizeView (новый размер (Math.Max ​​(800, e.NewSize.Width), Math.Max ​​(600, e.NewSize.Height))); –

+0

Это работает, но выглядит очень плохо. Когда пользователь перетаскивает, окно фактически становится меньше, чем указано, и мерцает, когда код «борется» за пользователя. Должен быть лучший способ. Это так странно, что MS жестко кодирует это до 500x500 и не позволяет разработчику изменять его. – under

1

Из MSDN:

Максимально допустимое минимальный размер составляет 500 х 500 эффективных пикселей. Если вы установили значение за пределами этих границ, оно должно быть в пределах допустимых границ .

Может быть, это и есть причина

MSDN Page

+0

, так что это только можно установить меньше? – PatrickSCLin

+0

Он должен работать, если вы задали размер 500 500. Можете ли вы подтвердить? –

+0

да ... он может быть меньше 500 x 500 – PatrickSCLin

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 
    }