You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 11 2024H2更新后ControlPaint.DrawReversibleFrame多屏显示异常

多显示器下ControlPaint.DrawReversibleFrame在Win11 2024H2更新后显示异常

我使用了10余年未改动的图表软件,在安装Windows 11 2024H2(2025年4月累积更新)后出现显示异常:底部的1、2号显示器(布局为左下、右下)上的图表缩放选区,会错误显示到顶部的3、4号显示器(左上、右上)。该显示器布局已使用5年以上,可明确判定是此次系统更新导致的行为变更。

经调试发现,图表库调用了System.Windows.Forms的ControlPaint.DrawReversibleFrame方法,当前该方法绘制的矩形仅会显示在顶部显示器或完全不显示。通过固定X坐标、宽高,遍历大量Y值调用该方法测试后,我推断该方法存在裁剪逻辑:仅保留Y值在0-1080(我的显示器分辨率为1920x1080)范围内的内容,且会将Y值向下偏移1080。底部显示器的Y值处于0-1080区间,偏移后变为负Y值,对应顶部显示器区域;Y值超出0-1080范围时则完全不显示。这使得无法通过坐标重计算等方式修复该问题,除非存在可修改该方法行为的设置。

我已尝试以下操作,但均无效果:

  • 将应用设置为DPI感知(Per Monitor或Per Monitor V2)
  • 更新最新显示驱动
  • 确保所有显示器分辨率与缩放比例保持一致(1920x1080,100%)

复现问题的示例代码

for (int i = 0; i < 60; i++)
{
    Rectangle rect3 = new Rectangle(600, i * 100, 300, 20);
    Rectangle rect4 = new Rectangle(3000, -2000 + i * 100, 300, 20);
    ControlPaint.DrawReversibleFrame(rect3, Color.Green, FrameStyle.Thick);
    ControlPaint.DrawReversibleFrame(rect4, Color.Red, FrameStyle.Thick);
    Thread.Sleep(1000);
}

内容的提问来源于stack exchange,提问作者aQuant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:37:08