获取可用的屏幕尺寸

时间:2015-05-19 20:29:03

标签: windows-10 uwp

如何获得最大尺寸的屏幕尺寸,可以在Win 10 UWP上调整应用的大小?

还可以检测应用是否在手机/平板电脑模式下最大化或运行,而不是在窗口模式下运行?

4 个答案:

答案 0 :(得分:5)

应用程序的最大大小可以调整为(即“工作区”,即屏幕大小减去任务栏)?没有办法获得这些信息。

注意:您可以调用ApplicationView.GetForCurrentView()。TryResizeView(New Size(500,500))以编程方式调整大小。但这不会比工作区域更大。

是否可以检测该应用所处的模式?

UIViewSettings.GetForCurrentView.UserInteractionMode 表示您处于“鼠标模式”(窗口)还是“触摸模式”(手机/平板电脑)。

ApplicationView.GetForCurrentView.TryEnterFullScreenMode()将尝试让您进入全屏模式(在桌面上,这意味着您的应用程序是全屏,没有任务栏;在手机上,这意味着有没有状态栏,没有“软导航按钮”)。您也可以调用ExitFullScreenMode()。属性 IsFullScreenMode 将说明您是否通过该API进入全屏模式。 (还有一个名为“IsFullScreen”的弃用API,你不应该使用它。)

我不知道如何检测它是否最大化。

答案 1 :(得分:1)

ApplicationView。GetForCurrentView()。IsFullScreen可以帮助您检测您的应用是否处于全屏模式。我想这就是你需要的。

答案 2 :(得分:0)

本身没有“最大尺寸”。印刷机中已经提到了Windows 10对8K分辨率(7680 * 4320)的支持,因此它与您将要看到的“最大尺寸”接近,并且在不久的将来肯定不会是常见的显示尺寸。

请记住,通用Windows应用程序和Windows 8商店应用程序将窗口大小表示为逻辑大小和DPI的组合。您可以使用以下数学将其转换为物理像素:

// 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.
}

有关显示的信息是从WinRT课程DisplayInformation获取的,您可以使用ApplicationView控制“模式”的某些方面。

答案 3 :(得分:0)

作为一个想法:检查应用程序是否在手机/平板电脑/ PC上运行,您可以使用自定义VisualStateTriggers并检查设备家庭。网上有一些样本。

也许这有帮助?!