Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 高DPI问题_.net_Dpi_Winapp - Fatal编程技术网

.net 高DPI问题

.net 高DPI问题,.net,dpi,winapp,.net,Dpi,Winapp,在高dpi设置下,我对.NET Windows应用程序的显示有问题 所有表单都设置为AutoScaleMode=DPI,但这并不能解决所有问题 基本上,标签的大小会随着字体的增大而增大,但其他控件的位置不会改变,最终标签会遮挡其他控件或相互遮挡 屏幕应如下所示: ..在高DPI时,其结果如下所示: (这是我的第一篇帖子,所以我只允许一个链接) 有什么建议吗 提前感谢, 克里斯蒂安这可能解决不了你的问题 但我们学到了标签和文本控件应该垂直堆叠的艰难方法,即将文本框放置在标签下方,而不是标签旁边。这

在高dpi设置下,我对.NET Windows应用程序的显示有问题

所有表单都设置为AutoScaleMode=DPI,但这并不能解决所有问题

基本上,标签的大小会随着字体的增大而增大,但其他控件的位置不会改变,最终标签会遮挡其他控件或相互遮挡

屏幕应如下所示: ..在高DPI时,其结果如下所示: (这是我的第一篇帖子,所以我只允许一个链接)

有什么建议吗

提前感谢,


克里斯蒂安这可能解决不了你的问题


但我们学到了标签和文本控件应该垂直堆叠的艰难方法,即将文本框放置在标签下方,而不是标签旁边。这为我们解决了许多问题,包括支持多种语言,因为不同语言中的文本宽度可能超过英文文本。理论上,Winforms中的字体和DPI缩放是自动的。实际上。。。没有那么多

我注意到它比水平缩放更好地处理垂直缩放,但即使如此,它也远不是完美的

根据我的经验,只有当您执行以下两项操作之一时,缩放才是可靠的:

  • 根本不要使用设计器。这是相当痛苦的,但它确实给了您对布局的必要控制

  • 使用内置的布局控件,特别是
    FlowLayoutPanel
    TableLayoutPanel
    。这些人是你最好的朋友;在Winforms中,我很少在没有它们的情况下做任何事情


  • 就你的情况而言,我可能会选择2。根据屏幕截图,我认为很容易将您的布局组合到
    TableLayoutPanel
    FlowLayoutPanel
    容器中-甚至可能只有一个
    TableLayoutPanel

    您应该查看AutoScaleMode和AutoSize功能。结合对接能力,你应该能够实现你想要的

    我有一篇很好的文章,但是链接已经死了。。。无论如何,这应该让你开始: