我通过在清单文件中设置<dpiAware>True/PM</dpiAware>
,使我的应用程序能够识别每个监视器的dpi。我可以使用process explorer验证这是否确实有效,或者调用GetProcessDpiAwareness。
这一切都运行得很好,我可以在我的代码中很好地缩放客户端区中的任何内容。然而,我唯一的问题是,如果我将我的应用程序从系统dpi监视器拖到非系统dpi监视器上,标题栏和任何系统菜单都会变得太大或太小。这不是大多数内置应用程序的情况(例如calc、edge browser等)。因此,必须有适当的扩展。有人知道微软的开发人员是怎么做到这一点的吗?
下面的截图应该能更好地解释我的问题。还要注意,close、min和max按钮之间的填充在缩放时是不同的(96dpi)。
Sample app我附加了一个非常简单的应用程序,这是每个显示器的dpi感知。
https://stackoverflow.com/questions/31781767
复制相似问题