wpf - 关于分辨率与 DPI 的问题?

标签 wpf visual-c++ resolution dpi

下面语句的含义是什么:

我的系统分辨率是 1024 x 768 @ 96 DPI

我无法理解当我们在固定分辨率下增加 DPI 时,用 VC++/MFC 或 C#/Winform 应用程序开发的用户界面会扩展(看起来比 96 DPI 时更大)的内部数学。

例如,我们以 96 DPI 开发用户界面,这意味着每英寸 96 个点。现在,当我们增加 DPI 时,我们也在增加每英寸点数,那么用户界面应该看起来是压缩的而不是放大的。

我是在 windows 7 机器上做的

请帮忙!!

最佳答案

My system resolution is 1024 x 768 at 96 DPI

这意味着您的计算机认为您的显示器每英寸有 96 个点(像素)(在此分辨率下)。当程序进行图形计算时,它使用此设置在实际长度(以英寸或厘米为单位)和像素之间进行转换。

如果 96 DPI 设置与您的显示器匹配(即显示区域为 1024/96=10.67 x 768/96=8 英寸),这将正确运行。

为什么当你增加这个设置时东西会变大?假设我们想要制作一个 1 英寸高的按钮,而您的显示器的实际 DPI 是 96,但您已将其设置为 150。1 英寸乘以每英寸 150 点得到 150 像素,因此我们将把按钮绘制为 150 像素高。但是我们显示器的真实 DPI 是 96,所以这显示为 150 像素/96 dpi = 1.56 英寸高。

关于wpf - 关于分辨率与 DPI 的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017186/

相关文章:

wpf - 在 WPF 中实现向导进度控制

android - 我无法更改 android 相机分辨率

image - 在不丢失分辨率的情况下在 Matlab 中读取 Parula 图像

jquery - 解决方案:使用 jQuery 在滚动时保持元素在 View 中

c# - .NET 软件更新管理器

c# - C#简单多线程

c# - 数据绑定(bind)依赖属性到数据对象

visual-c++ - 将 MFC CString 转换为整数

c++ - 在VC++ 2010中使用个人静态库

c++ - 使用winsock vc++通过UDP发送数字数组