问题标签 [highdpi]
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.
java - 特定面板的 jdk 9 高 dpi 禁用
使用 JDK 9,我的 Swing 应用程序在具有 4k highdpi 和正常 1080p 正常 dpi 的 Windows 上运行良好。标签、组合框等都看起来不错,并且在 4k 屏幕上按比例放大。但我的 JPanel 也是如此,我在其中绘制自定义图像。我可以禁用这个 JPanel 的缩放来自己处理绘图吗?我正在使用 apache-commons 双三次插值来绘制更高未缩放分辨率的更多细节,但由于它是开箱即用的,我只有“正常”尺寸来绘制。
亲切的问候
windows - 我可能用“禁用显示缩放”修复了什么错误?
我继承了一个现在必须在 Windows 10 上运行的遗留应用程序。在测试期间,我们发现程序的一部分(它是作为工具栏放置的子窗口)在程序启动时只会部分绘制——超过一半的工具栏的右侧只会绘制黑色。在运行时,修复是调整整个窗口的大小,这将调整/重绘工具栏窗口的大小。我们最终发现,如果我们设置“禁用显示缩放”似乎可以完全防止该错误(到目前为止测试的置信度刚刚超过 1 万分之一,这对我来说已经足够了)。
问题是:
这个错误的发生概率可能在 1/12 到 1/20 之间(我从我们对程序的自动测试的视频中确定,其中涉及 185 次错误发生的机会。没有发现发生的模式)。我从来没有处理过这样的错误,所以我想知道:鉴于错误的明显随机性和修复,发生了什么?Windows 为“高 DPI”而升级的位图渲染与布置工具栏的功能之间的竞争条件?
c# - WinForms 窗口在遇到异步调用时更改尺寸
我有一个多年前的 WinForms 项目,并且已经改装了异步事件处理程序:
此方法内部是一个异步调用:
当程序在正常分辨率屏幕上运行时,它会按预期运行。但是,当在高 DPI 屏幕上运行时,窗口的尺寸——以及所有子控件的尺寸——一旦遇到内部异步调用就会跳转到一半大小。就好像程序突然在兼容模式下运行或缩放已被禁用。
目前,为了调试问题,该GetProjectTemplateFile
方法简单地包括
GetProjectTemplateFile
是否执行异步操作没有区别。
如果我注释掉该异步调用,GetProjectTemplateFile
那么程序会按预期运行,而不会出现任何维度跳跃,即使事件中还有其他异步调用CellClick
。
我已经尝试附加.ConfigureAwait(true)
到异步调用,这没有区别。也不会与 . 同步运行调用.GetAwaiter().GetResult()
。
谁能解释为什么窗口的尺寸会随着这个特定的异步调用而改变,和/或如何防止这种情况发生?
更新
根据请求,这是一个引发解释行为的代码示例。我可以看到这里没有发生任何异常,但我向您保证,正是这段代码导致了解释的行为。
其他一些可能相关的信息:
FormBorderStyle
窗口是“FixedToolWindow ”- 窗口在启动方法中被赋予了明确的宽度
AutoSize
= 假AutoSizeMode
= 只成长- 正在开发它的计算机没有具有新缩放逻辑的 Windows 10 1703 (Creator's) 更新
- 如果
GetprojectTemplateFile
方法不是异步的,即有签名,public ProjectTemplateFile GetProjecttemplateFile(...)
那么就没有问题。仅当方法调用为异步时,此问题似乎才存在 - 即使我将其设为阻塞调用。
更新 2:
我找到了导致此问题的特定代码行:
内部异步调用GetProjectTemplateFile
调用 API,然后检查响应:
如果我注释掉MessageBox.Show(...)
呼叫,那么一切正常,没有缩放问题,也没有尺寸跳跃。
但是当MessageBox.Show(...)
呼叫就地时就会出现问题。
此外,API 以 200(OK)响应,因此 MessageBox 代码甚至没有被使用。我的猜测是 JIT 编译器认为这是一种可能性,所以......它重新呈现表单?
此外,重要的是,此代码不在表单的代码隐藏中,它在一个类中,该类在其构造函数中为表单提供了一个实例。
windows-subsystem-for-linux - 在 Windows 上模拟 bash 时 Cmder 未正确换行
不久前,我将这个问题发布到 Cmder GitHub 页面。两周后,它仍然没有得到答复,所以我希望在这里碰碰运气。
基本上,我在运行 bash 时在 Cmder 中调整窗口大小时看到了奇怪的行为。
这是我发布的问题:
要重现,打开 Cmder 并最大化窗口:
- 在模拟 bash 控制台(Windows 上的 Ubuntu 上的 Bash)时,缩小窗口大小,以便命令行(即
PS1
环境变量)换行到下一行。- 运行命令(可以是简单的Enter击键,只要尊重 1.)。
- 最大化窗口大小,然后键入比先前缩小的窗口更长的命令。线应该环绕自身。
任何人都可以重现这种行为吗?(运行 Microsoft Windows [版本 10.0.15063])
我在模拟 cmd.exe 时没有观察到相同的行为。
更重要的是,我在运行“Windows 上的 Ubuntu 上的 Bash”应用程序时没有观察到这种行为。
我还尝试查看在 ConEmu 上是否观察到相同的行为。当我调整屏幕大小时,我收到消息:“已达到最大控制台大小......减少实际控制台属性中的字体大小”,我猜这可能与我的高 DPI 屏幕有关。最重要的是,我得到了与 Cmder 中相同的行为。
非常感谢您对此的任何帮助:D
winapi - Windows 10 上的 Win32 API 窗口应用程序 Retina 高 DPI 屏幕问题
主题:简单的基于 C++ Win32 API 的单窗口应用程序。请参阅下面的代码。计算机是本机安装 Windows 10 的 MacBook Retina。
问题:标题栏(窗口的非客户区)中的最小化/最大化/关闭按钮在鼠标悬停事件中表现不正确。每个按钮仅在鼠标光标移动时突出显示,而按钮应始终突出显示,直到鼠标指针离开按钮区域。
问题:问题是什么?Win10清单?
编码:
bash - xrandr 大小 1920x1080 在可用模式 ubuntu 中找不到
我正在使用具有 4k 显示屏和 ubuntu 作为操作系统的戴尔 XPS 15 9550。我需要使用 Matlab,但我(一如既往)有一个 HighDPI 问题。目前我正在使用 r2017a 版本的 Matlab。
为了解决这个问题,我尝试使用一个小脚本来避免这个问题:
脚本.sh
当我启动它时,我从控制台收到此错误:
“在可用模式中找不到尺寸 1920x1080”
所以我做了:
输出:
在那之后:
最后
我使用 xrandr -q 找到了 eDP-1-1。这里的输出
所以我认为我已经做对了所有事情,但是脚本仍然不起作用,控制台仍然给我同样的错误。
我做错了什么?