获取可用的屏幕尺寸
Posted
技术标签:
【中文标题】获取可用的屏幕尺寸【英文标题】:Get available screen size 【发布时间】:2015-07-31 20:47:42 【问题描述】:如何在 Win 10 UWP 上获得应用可以调整到的最大屏幕尺寸?
还可以检测应用程序是否已最大化或在手机/平板电脑模式下运行还是在窗口模式下运行?
【问题讨论】:
【参考方案1】:本身没有“最大尺寸”。 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
控制“模式”的某些方面。
【讨论】:
【参考方案2】:作为一个想法:检查应用程序是否在手机/平板电脑/PC 上运行,您可以使用自定义 VisualStateTriggers 并检查设备系列。网上有一些样本。
也许这有帮助?!
【讨论】:
【参考方案3】:应用可以调整到的最大尺寸(即“工作区”,即屏幕尺寸减去任务栏)?无法获取此信息。
注意:您可以调用 ApplicationView.GetForCurrentView().TryResizeView(New Size(500, 500)) 以编程方式调整大小。但这不会调整大于工作区的大小。
是否可以检测到应用处于什么模式?
UIViewSettings.GetForCurrentView.UserInteractionMode 说明您是处于“鼠标模式”(窗口)还是“触摸模式”(手机/平板电脑)。
ApplicationView.GetForCurrentView.TryEnterFullScreenMode() 会尝试让你进入全屏模式(在桌面上,这意味着你的应用是全屏,没有任务栏;在手机上,这意味着有没有状态栏,也没有“软导航按钮”)。您也可以调用 ExitFullScreenMode()。 IsFullScreenMode 属性会说明您是否已通过该 API 进入全屏模式。 (您不应该使用另一个名为“IsFullScreen”的已弃用 API)。
我不知道如何检测它是否被最大化。
【讨论】:
如果显示器是集成的(手机、平板电脑、笔记本电脑),您可以使用GetIntegratedDisplaySize
确定显示器尺寸。不幸的是,在多显示器场景中,它不会告诉您您是否在集成显示器上。【参考方案4】:
ApplicationView.GetForCurrentView().IsFullScreen 可以帮助您检测您的应用是否处于全屏模式。我想这就是你需要的。
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 谢谢。我会考虑的以上是关于获取可用的屏幕尺寸的主要内容,如果未能解决你的问题,请参考以下文章