【问题标题】:Surface tablet logical resolutionSurface 平板逻辑分辨率
【发布时间】:2015-01-15 06:08:04
【问题描述】:

我正在做一个需要我获得主屏幕屏幕分辨率的项目。我在 Windows 中使用 C# .NET 3.5 框架。对于所有笔记本电脑,我都可以使用这两个调用获得分辨率:

string width = Screen.PrimaryScreen.Bounds.Width.ToString();
string height = Screen.PrimaryScreen.Bounds.Height.ToString();

但是,这对于 Surface 平板电脑根本不起作用,因为调用返回的分辨率比平板电脑的显示设置中显示的分辨率低得多。我知道这与 Windows 执行与 DPI 相关的特殊操作并相应地缩放屏幕有关。

但是,我不确定如何以编程方式准确检索 Surface 平板电脑的分辨率(无论显示设置如何报告这些指标)。

【问题讨论】:

  • 请记住,缩放并非特定于 Surface 平板电脑。高分辨率笔记本电脑,如联想 Yoga 2 Pro(和许多其他笔记本电脑)默认情况下也会缩放内容,因此这是您的应用需要处理的事情。
  • 我将如何以编程方式处理它?是否有我可以调用并获取相应缩放值的 API?
  • 这取决于您使用的技术。你可能会在这次谈话中找到一些有用的信息channel9.msdn.com/Events/Build/2014/2-535

标签: c# .net dpi


【解决方案1】:

所以我发现了问题所在。我必须在app.manifest 文件中添加以下内容:

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <dpiAware>True/PM</dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 2015-08-26
    相关资源
    最近更新 更多