4

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

是否可以检测应用程序是否已最大化或在手机/平板电脑模式与窗口模式下运行?

4

4 回答 4

5

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

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

是否可以检测应用程序处于什么模式?

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

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

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

于 2015-05-21T21:22:25.110 回答
1

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

于 2015-06-30T14:03:40.503 回答
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

于 2015-05-20T06:37:41.493 回答
0

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

也许这有帮助?!

于 2015-05-21T08:23:40.347 回答