通过32px步骤(VS15)调整WinForm Designer中的控件大小

时间:2015-11-01 13:53:19

标签: c#

我的新自定义控件有点问题。问题是我希望它通过32px步骤来调整大小以创建一个网格,所以我正在寻找一个调整大小后的事件,或类似的东西来调整控件的大小。任何人都有一些想法吗?

1 个答案:

答案 0 :(得分:4)

只需强制执行尺寸要求:

class MyGrid : Control {
    private const int pitch = 32;

    protected override void OnClientSizeChanged(EventArgs e) {
        var w = pitch * ((this.ClientSize.Width + pitch/2) / pitch);
        var h = pitch * ((this.ClientSize.Height + pitch/2) / pitch);
        if (w != this.ClientSize.Width || h != this.ClientSize.Height)
            this.ClientSize = new Size(w, h);
        else base.OnClientSizeChanged(e);
    }
}

这不是最精彩的设计时间体验,但它既可维修又非常简单,因为它不需要定制设计师。

对此非常小心,硬盘编码的像素大小并不是一个好主意,如今可以使用4K显示器并且价格低于500美元。那个32像素的网格单元将成为这样一个屏幕上的灰尘斑点。