最大窗口大小从PC更改为PC

时间:2012-05-28 19:16:59

标签: c#

我创建了一个小型测试应用程序,它允许将文件从一个地方复制到另一个地方的功能非常有限。现在由于功能有限,我保持窗口大小固定(最大化为错误和明确定义的高度和宽度为250x200像素)。只有2个文件浏览元素和一个复制按钮。

我的朋友测试在他们的PC上运行它,问题是它对我的大多数朋友运行良好,但是其中3人注意到应用程序的高度不够,复制按钮被隐藏了80%(仅限其中20%是可见的)。其中一个是1920x1080分辨率,另外两个是1366x728。所有测试PC都是Windows 7计算机。

这可能发生的原因和原因是什么?

2 个答案:

答案 0 :(得分:2)

我能想到的一件事是他们的DPI设置与你的电脑不同。

  

控制面板\外观和个性化\显示

答案 1 :(得分:1)

  

最大化为错误且定义明确的高度和宽度为250x200像素

没关系,只要在表单构造函数中设置 。并将FormBorderStyle设置为Fixed,因此很明显窗口无法调整大小。如果您稍后再执行此操作,例如在“加载”或“调整大小”事件中,则会使具有高分辨率显示效果的用户感到不快。或者是“视网膜”显示器,我们很快就会拥有它们。他们需要提高视频适配器的每英寸点数设置,这样他们仍然可以在没有放大镜的情况下读取8点文本。

这会导致文本以更多像素呈现。这要求您的控件变大,其大小以像素为单位指定。如果你不让它们成长那么你将拥有大文本的小控件,没有吸引力和不可读。更大的控件反过来要求它们移动,并且您的表单变得更大,因此它仍然适合控件。

这完全是自动的,这要归功于表单的AutoScaleMode设置。默认为Font,这正是您所需要的。但是,当您将表单强制恢复为原始设计大小时,它将无效,它将剪切已移动的控件。

快速检查表单是否仍然可以在这样的计算机上正常运行,而不是修改视频dpi设置,这是加载事件处理程序中的一些测试代码:

    protected override void OnLoad(EventArgs e) {
        this.Font = new Font(this.Font.FontFamily, this.Font.Size * 125 / 96f);
        base.OnLoad(e);
    }