2015-05-19 189 views
4

如何獲取應用程序在Win 10 UWP上調整大小的最大尺寸的屏幕大小?獲取可用屏幕尺寸

還有可能檢測應用程序是最大化還是在手機/平板電腦模式下運行與在窗口模式下運行?

回答

0

本身沒有「最大尺寸」。媒體已經提到了Windows 10對8K分辨率(7680 * 4320)的支持,因此它接近您將要看到的「最大尺寸」,並且在不久的將來肯定不會成爲常見的顯示屏尺寸。

請記住,通用Windows應用程序和Windows 8應用商店應用程序將窗口大小表示爲邏輯大小和DPI的組合。將其轉換爲物理像素具有以下數學:從WinRT的DisplayInformation類獲得

// Converts a length in device-independent pixels (DIPs) to a length in physical pixels. 
inline float ConvertDipsToPixels(float dips, float dpi) 
{ 
    static const float dipsPerInch = 96.0f; 
    return floorf(dips * dpi/dipsPerInch + 0.5f); // Round to nearest integer. 
} 

有關顯示的信息,您可以控制使用ApplicationView「模式」的某些方面。

0

作爲一個想法:檢查應用程序是否在手機/平板電腦/ PC上運行,您可以使用自定義的VisualStateTriggers並檢查設備familly。網上有一些樣本。

也許這有幫助嗎?!

5

最大尺寸的應用程序可以調整大小爲(即「工作區」,即屏幕尺寸減去任務欄)?沒有辦法獲得這些信息。注意:您可以調用ApplicationView.GetForCurrentView()。TryResizeView(New Size(500,500))以編程方式調整大小。但這不會比工作區域調整得更大。

是否有可能檢測到應用程序在什麼模式?

UIViewSettings.GetForCurrentView.UserInteractionMode說,無論你是在 「鼠標模式」(窗口)或 「觸摸模式」(手機/平板電腦)是。

ApplicationView.GetForCurrentView.TryEnterFullScreenMode()會盡量把你進入全屏模式(在桌面上,這意味着你的應用程序是全屏,沒有任務欄;上手機,它意味着沒有狀態欄,無「軟導航按鈕」)。您也可以調用ExitFullScreenMode()。財產IsFullScreenMode會說你是否已經通過該API進入全屏模式。 (還有另一個被稱爲「IsFullScreen」的棄用API,你不應該使用它)。

我不知道如何檢測它是否最大化。

+0

如果顯示器已集成(手機,平板電腦,筆記本電腦),則可以使用['GetIntegratedDisplaySize'](https://msdn.microsoft.com/en-us/library/windows/desktop/dn904185(v = vs。 85).aspx)來計算顯示大小。不幸的是,在多顯示器的情況下,它不會告訴你是否在集成顯示器上。 –

1

ApplicationView .GetForCurrentView()。 IsFullScreen可以幫助您檢測您的應用是否處於全屏模式。我想這是你需要的。

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 –

+0

謝謝。我會考慮的 –