SplitContainerControl重写间隔宽度

SplitContainerControl用于界面面板控制,使用起来也非常方便,可以设置间隔条的方向,但不能设置间隔条宽度,默认的宽度略宽了些。

只能通过重写CreateContainerInfo方法才可实现间隔条宽度。相关代码如下:

SplitContainerControlEx类

[ToolboxItem(true)]
public class SplitContainerControlEx : SplitContainerControl
{
    private int _splitterWidth;

    public int SplitterWidth
    {
        get => _splitterWidth;
        set
        {
            _splitterWidth = value;
            OnPropertiesChanged();
            PerformLayout();
        }
    }

    protected override SplitContainerViewInfo CreateContainerInfo()
    {
        return new SplitContainerViewInfoEx(this);
    }
}

SplitContainerViewInfo类:

public class SplitContainerViewInfoEx : SplitContainerViewInfo
{
    public SplitContainerViewInfoEx(SplitContainerControl container)
        : base(container)
    {
    }

    protected override int GetSplitterSize()
    {
        return ((SplitContainerControlEx) this.Container).SplitterWidth;
    }
}

如果宽度设置得太小,不容易操作,建议至少设置为2.

posted @ 2020-06-21 22:30  我也是个傻瓜  阅读(1338)  评论(0编辑  收藏  举报