问题描述
有人可以解释这种奇怪的现象吗?
创建了Winforms应用程序.NETFramework 4.7。
this.AutoScaleDimensions = new System.Drawing.Sizef(6F,13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
创建了一个面板,并将其位置从左到上设置为100,将其大小的宽度设置为100。
根据here
- 创建app.manifest并启用Windows 10兼容性
- 创建了app.config并将
value="PerMonitorV2"
更改为 Unaware ,系统, PerMonitor ,然后是 PerMonitorV2 。
<System.Windows.Forms.ApplicationConfigurationSection>
<!--<add key="DpiAwareness" value="Unaware"/>-->
<add key="DpiAwareness" value="System"/>
<!--<add key="DpiAwareness" value="PerMonitor"/>-->
<!--<add key="DpiAwareness" value="PerMonitorV2"/>-->
</System.Windows.Forms.ApplicationConfigurationSection>
然后,对于每次感知更改,我的确将主屏幕DPI缩放比例从100%更改为175。每次在InitializeComponent();
之后记录面板位置及其大小,都会运行该应用程序。
以下是结果:
Awareness: Unaware
DPI: 96 (100%) -> Left: 100,Width: 100,Top: 100,Height: 100
DPI: 120 (125%) -> Left: 100,Height: 100
DPI: 144 (150%) -> Left: 100,Height: 100
DPI: 168 (175%) -> Left: 100,Height: 100
Awareness: System Aware
DPI: 96 (100%) -> Left: 100,Height: 100
DPI: 120 (125%) -> Left: 133,Width: 133,Top: 123,Height: 123 ?!
DPI: 144 (150%) -> Left: 150,Width: 150,Top: 154,Height: 154 ?!
DPI: 168 (175%) -> Left: 183,Width: 183,Top: 185,Height: 185 ?!
Awareness: Per-Monitor Aware
DPI: 96 (100%) -> Left: 100,Height: 100
Awareness: Per-Monitor Aware v2
DPI: 96 (100%) -> Left: 100,Height: 100
在(意识:系统意识,125%,150%,175%)情况下,有人有任何想法或知识来解释这种奇怪的行为吗?
修改
如果是125%,我不知道133、123的来源。
在150%的情况下,接缝有一定的逻辑,但对于154没有。
同样在175%的情况下,我不能提出任何逻辑。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)