2017-04-21 113 views
2

在我的UWP應用程序中,我想設置最小窗口大小,以便窗口不能小於該大小。UWP中的最小窗口大小

無處不在,我搜索,似乎使用ApplicationView.PreferredLaunchViewSize是要走的路,但由於某種原因,這不適用於我的應用程序。

我創建了一個空白UWP的應用程序和更新OnLaunched方法如下:

protected override void OnLaunched(LaunchActivatedEventArgs e) 
    { 
     ApplicationView.PreferredLaunchViewSize = new Size(1200, 900); 
     ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize; 
     ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size(800, 600)); 

     ... 
    } 

我的應用啓動在1200×900的正確的大小,但我可以收縮比爲800 x 600的極限更小的窗口我已經爲應用程序設置了它。

什麼是正確的方法來限制窗口大小,使它不能小於一定的大小?

回答

3

SetPreferredMinSize是正確的API,但有兩個重要的注意事項:

  • 首先,記住,CoreWindow這些API以DIP(與設備無關的像素空間)操作,而不是「真實像素」。如果您要設置最小值例如320 x 200像素,則需要確保按當前DPI值縮放值。

  • 其次,在UWP中,您確實沒有對演示窗口大小的硬性控制,但只能表示偏好。您無法獲得800 x 600的工作原因是「最大最小」尺寸有效500 x 500像素。見MSDN

在我Direct3D VS Game templates我使用320×200的最小尺寸:

auto minSize = Size(ConvertPixelsToDips(320), ConvertPixelsToDips(200)); 
view->SetPreferredMinSize(minSize); 
+0

你是對的。我沒有注意說明部分,它明確指出Max的最小尺寸是500x500 –