2015-05-19 167 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

谢谢。我会考虑的 –