如何解决将外壳从高 dpi 移动到低 dpi 显示器不会重新缩放外壳及其内容 (SWT)
测试系统:Windows 10
将简单的 Shell 从高 dpi 主显示器移动到外部显示器(标准 dpi)时,问题就会显现出来。 Shell 及其内容在辅助监视器上时不会重新缩放。 SWT.ZoomChanged
按预期收到,但我不知道如何对其采取行动,我在 Shell 上没有看到任何似乎执行重新缩放的方法。与此相关:Eclipse 会自动重新缩放额外的窗口和外壳!那是手动完成的吗?是否有示例代码显示如何在所有系统上可靠地执行此操作? (GTK等)
示例代码:
public class ShellTest {
public static void main(String[] args) {
final display display = display.getDefault();
final Shell shell = new Shell(display,SWT.SHELL_TRIM);
shell.setLayout(new GridLayout());
shell.addListener(SWT.ZoomChanged,new Listener() {
@Override
public void handleEvent(Event event) {
System.out.println("ZoomChanged: " + event);
}
});
Button btn = new Button(shell,SWT.PUSH);
btn.setText("Test");
shell.open();
shell.layout();
while(!shell.isdisposed()) {
if(!display.readAnddispatch()) {
display.sleep();
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。