1

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

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

这如何以及为什么会发生?

4

2 回答 2

2

我能想到的一件事是他们的 DPI 设置与您的计算机不同。

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

于 2012-05-28T19:32:58.557 回答
1

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

没关系,只要您在表单构造函数中设置此大小即可。并将 FormBorderStyle 设置为 Fixed ,这样就可以清楚地看到窗口不能调整大小。如果您稍后再执行此操作,例如在 Load 或 Resize 事件中,那么您会令拥有良好高分辨率显示的用户不满意。或者“视网膜”显示器,我们很快就会拥有它们。他们需要提高视频适配器的每英寸点数设置,这样他们仍然可以在没有放大镜的情况下阅读 8 点文本。

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

这都是自动的,这要归功于表单的 AutoScaleMode 设置。它默认为您所需要的字体。但是,当您将表单强制恢复为其原始设计尺寸时,这将不起作用,它将剪切移动的控件。

除了修改视频 dpi 设置之外,检查您的表单是否仍然在这样的机器上正常工作的一种快速方法是 Load 事件处理程序中的这段测试代码:

    protected override void OnLoad(EventArgs e) {
        this.Font = new Font(this.Font.FontFamily, this.Font.Size * 125 / 96f);
        base.OnLoad(e);
    }
于 2012-05-28T20:02:18.153 回答