问题标签 [dpi-aware]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 创建 DPI 感知应用程序
我在 C# 中有一个表单应用程序。当我更改显示器的 DPI 时,所有控件都会移动。我使用了代码this.AutoScaleMode = AutoScaleMode.Dpi
,但它并没有避免这个问题。
有人有想法吗?
windows-xp - Windows XP 中的 DPI 感知应用程序
我想让我的 C# 应用程序知道 DPI。Windows API 中有一个名为 SetProcessDPIAware() 的命令,但问题是它仅适用于 Windows Vista 和更高版本的 Windows,而不适用于 XP。如何使控件、按钮和字体 DPI 感知,以便无论使用什么 Windows 版本都能正确显示?
c# - 如何配置应用程序以在具有高 DPI 设置(例如 150%)的机器上正确运行?
我在 C# 中创建了一个简单的 Winforms 应用程序。当我在具有高 DPI 设置(例如 150%)的机器上运行应用程序时,应用程序会按比例放大。到现在为止还挺好!但不是用更大的字体大小渲染字体,所有文本也只是按比例放大。这当然会导致文本非常模糊(在按钮等所有控件上)。
Windows 不应该负责正确呈现文本吗?例如,我的应用程序的标题栏呈现清晰明了。
c++ - 如何让我的应用程序具有 DPI 感知能力?
当用户设置 DPI 缩放以在所有显示器中绘制更大的字体和窗口时,我不希望我的应用程序受到影响(我不希望我的应用程序的字体和控件变大)
我尝试使用SetProcessDPIAware() 函数或添加清单文件,但没有成功。如何防止 Windows(XP、7 和 8)更改我的应用程序的字体大小?
wpf - 为什么 72 dpi 的图像在 96 dpi 的屏幕上显得更大
- 我将屏幕设置为 72 DPI,并设计了一个 100x100 @ 72 DPI 的小 png 图像。这意味着 72 像素代表 1 英寸。
- 现在,我将屏幕更改为 120 DPI,并设计了相同的图形 png 图像,其分辨率为 100x100 @ 120 DPI。这意味着 120 像素代表 1 英寸。
- 我再次将屏幕更改为 96 DPI。这意味着 96 像素代表 1 英寸。然后创建了一个 WPF 应用程序并添加了两个图像(步骤 1 和步骤 2) -我已将 Stretch Mode 设置为 None
不确定我是否正确理解了这个概念,我希望 72 dpi 的图像在 96 dpi 时看起来更小,因为如果该图像的 72 像素代表 1 英寸,那么在新配置中,96 像素代表 1 英寸。因此,我希望 72 dpi 的图像看起来更小。但事实并非如此。事实上,恰恰相反。72 dpi 的图像在 96 dpi 时看起来更大。为什么?是否像 WPF 在图像方面将始终默认为 96 dpi 一样?
更新 为什么即使在 120 dpi(将系统 dpi 设置为 120)下,只有 96 dpi 的图像完全适合 200x200 框?
delphi - DPI 意识清单
我想尝试 DPI 意识。我创建了以下清单,但出现错误:
无法创建进程:应用程序无法启动,因为它的并排配置不正确。
这是清单。我究竟做错了什么?
wpf - TransformToDevice 在 Windows 8.1 上没有返回正确的 DPI 因子
您好我正在实现 DPI 感知应用程序,我想根据当前分辨率计算窗口的位置。
我在 Windows 8.1 上测试了以下代码,如果我们更改 DPI 设置,操作系统不会要求重新登录。它立即应用 DPI。
但是如果我使用 mspanel 更改 DPI 而不注销并重新登录,则 TransformToDevice() 返回旧值而不是新值。我认为如果 DPI 设置改变,这个变换矩阵会改变。
当 DPI 设置更改时,我应该调用一种方法吗?
inno-setup - Inno Setup WizardImageFile 在 Windows 7 上的字体缩放看起来很糟糕
Inno Setup WizardImageFile
(和WizardSmallImageFile
)的位图看起来很糟糕,因为当 Windows 7 启用了大系统字体时,向导比平常大,但图像缩放严重错误。
有解决办法吗?
如果我在这样的地方添加自己的图片,则没有类似的问题:
windows - 在 Windows 8 上声明每个窗口的高 DPI 感知
我正在开发在 Cubase 等主机中运行的音频插件,并且我正在寻找添加高 DPI 支持。这是有问题的,因为我所知道的所有主机应用程序都将自己声明为非高 DPI 感知,因此所有窗口都由 DWM 自动缩放。我正在寻找一种方法来关闭插件窗口的 DWM DPI 缩放,即使主机本身不支持 DPI(因此它对所有其他窗口使用 DWM DPI 缩放)。有谁知道这是否可能?
对于使用大量插件的应用程序,例如音频主机,这是一个非常现实的问题,因为它们不能直接声明自己具有高 DPI 感知能力:这会破坏所有现有插件。因此,除非 Windows 对此提供解决方案,否则我们总是停留在 96 dpi 领域。基本上我认为我们需要一个比设置每个进程更细粒度的解决方案,以便主机和插件可以单独声明它们的感知级别。
如果目前无法做到这一点,是否可以联系 Microsoft 工程师,以便将其添加到未来版本的 Windows 中?
c# - DPI 感知和 Rect
我遇到了一个小问题,我似乎无法找到答案。我有一个应用程序可以获取某些进程并获取它的窗口大小。唯一的问题是它占用了实际屏幕尺寸(用户看到的)的百分比。
我想制作应用程序的屏幕截图,但如果我使用窗口的 Rect,我会得到比实际更小的屏幕,因为分辨率为 125%。这意味着我输出的原始分辨率 ( 1280 * 800
) 小于我的屏幕分辨率 ( 1600 * 1000
) 你可以理解这个小问题使我的程序不可靠。我的问题是如何解决这个问题?
我创建了一个清单,并将其设置DPIAware
为 true。我还在调试中禁用了 Visual Studio 托管。但这无济于事。我仍然得到相同的值和相同的问题。这是我实际截屏的代码片段:
这给了我一个截图1280 * 800
,不足以涵盖整个过程,即1600 * 1000
. 一切都关闭了,因为屏幕坐标不正确。如果我将所有内容乘以 1,25 就可以了,但这不是解决方案,因为我不知道其他 PC 上的 DPI 设置是什么。
编辑 3:
我将发布带有 RECT 的完整代码。