动态控制ToolStrip上ToolStripButton的图标大小

一 设置固定大小的ToolStripButton

设置固定大小的ToolStripButton很简单,ToolStripButton-->AutoSize属性设置为false,size调整为自己想要的大小即可。

同时配合的是ToolStripButton所在的ToolStrip的属性设置,最关键的是ImageScalingSize 属性的设置:

this.toolStrip1.ImageScalingSize = new System.Drawing.Size(32, 32);   //设置图标的大小为32 * 32 像素,当然,可以设置为自己需要的大小

下图给出的例子是50 * 50:

二 实现动态控制ToolStrip上ToolStripButton的大小

动态加载ToolStrip上的ToolStripButton,其实是图标大小可选而已,自己可以如法自定义多种。
 
1.    使用大图标/小图标

我在追加的菜单事件中写控制ToolStrip的ImageScalingSize属性的代码:

 

/// <summary>

/// 大图标单击事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void tsmiLargeIcon_Click(object sender, EventArgs e)

{

    this.toolStrip1.ImageScalingSize = new System.Drawing.Size(32, 32);// 设置为32*32

    this.toolStrip1.Height = 32;

    foreach (ToolStripItem tsmi in this.toolStrip1.Items)

    {

        if (tsmi is ToolStripButton)

        {

            tsmi.AutoSize = false;

            tsmi.Height = 32;

            tsmi.Width = 32;

            tsmi.AutoSize = true;

        }

    }

}

 

/// <summary>

/// 小图标单击事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void tsmiSmallIcon_Click(object sender, EventArgs e)

{

    this.toolStrip1.ImageScalingSize = new System.Drawing.Size(16, 16);

    this.toolStrip1.Height = 23;

    foreach (ToolStripItem tsmi in this.toolStrip1.Items)

    {

        if (tsmi is ToolStripButton)

        {

            tsmi.AutoSize = false;

            tsmi.Height = 16;

            tsmi.Width = 16;

            tsmi.AutoSize = true;

        }

    }

}

请注意:要在改变工具按钮前将【AutoSize】设为【false】,是因为只有设置此项,才能改变ToolStripButton的大小。

posted @ 2015-10-09 11:18  双河子思  阅读(1083)  评论(0编辑  收藏  举报