根据屏幕分辨率,将窗体上的按钮控件调整为固定大小

时间:2014-08-19 00:15:42

标签: c# .net winforms button

我有一个特定的要求 - 我的表单上的按钮大小应该在不同的屏幕分辨率下保持特定的大小。

enter image description here

如上所述,我有按钮“ON”和“OFF”&对于特定分辨率,两个按钮的大小均为2厘米。

现在我需要将按钮重新调整为2 cms的代码,以便不同的分辨率或按钮大小即使在不同的分辨率下也应保持相同。

感谢

3 个答案:

答案 0 :(得分:0)

这个问题似乎是一个"如何使Windows独立解析?"。顺便说一下,互联网上有很多例子可以让你的表单分辨率独立。不幸的是,.Net没有提供任何类型的工具来使您的应用程序对所有分辨率都通用。但是,没有一种正确的方法。

我已经为此发布了一个逻辑。你可以看一下。

Scale windows forms window

您只需将该代码添加到Windows窗体即可。

答案 1 :(得分:0)

我们可以获得https://stackoverflow.com/a/4767664/3745022

private int CentimeterToPixel(double Centimeter)
{
    double pixel = -1;
    using (Graphics g = this.CreateGraphics())
    {
        pixel = Centimeter * g.DpiY / 2.54d;
    }
    return (int)pixel;
}

// ...

button.Width = CentimeterToPixel(2);

几点:

  1. 它使用DpiY进行转换,这可能(几乎不可能,但是 尽管如此)与DpiX不同。
  2. 您可能想了解DPI aware applications,DPI 意识是比手动缩放更好的选择,因为在手动中 缩放你应该对应有的一切负责 缩放(字体,边距,大小......)

答案 2 :(得分:-3)

不知道Winforms,但可能会用CSS处理:

@media (min-width: 221px) {
    #button1 {
        width: 200px;
        height: 200px;
    }
}
@media (min-width: 280px) {
    #button1 {
        width: 240px;
        height: 240px;
    }
}

重复不同的屏幕尺寸和button2。屏幕尺寸可以比我定义的更小,更大。

或者可以使用jQuery处理:

jQuery(document).ready(function ($) {

window.onresize = function () {
    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
        $("#button1").width(($(window).width()) / (3));
        $("#button1").height(($(window).height()) / (3));
        $("#button2").width(($(window).width()) / (3));
        $("#button2").height(($(window).height()) / (3));
    }
    else {
        $("#button1").width(($(window).width()) / (1.5));
        $("#button1").height(($(window).height()) / (1.5));
        $("#button2").width(($(window).width()) / (1.5));
        $("#button2").height(($(window).height()) / (1.5));
    }
});

无论如何都是这样的。包括手机的东西,以防你正在寻找......