5

上部にメニューとツールストリップがあるフォームがあります。menuStrip には見栄えの良いグラデーションの背景がありますが、toolStrip コントロールで同じ効果を得るにはどうすればよいですか? RenderMode プロパティについては知っていますが、これを変更しても望ましい結果が得られません。

ツールストリップの背景

4

1 に答える 1

1

これは、カスタム レンダラーで実現できます。

public class CustomToolStripRenderer : ToolStripProfessionalRenderer
{
    public CustomToolStripRenderer() { }

    protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
    {
        //you may want to change this based on the toolstrip's dock or layout style
        LinearGradientMode mode = LinearGradientMode.Horizontal;

        using (LinearGradientBrush b = new LinearGradientBrush(e.AffectedBounds, ColorTable.MenuStripGradientBegin, ColorTable.MenuStripGradientEnd, mode))
        {
            e.Graphics.FillRectangle(b, e.AffectedBounds);
        }
    }
}

次に、このレンダラーのインスタンスを使用するようにツールストリップを設定します。

public Form1()
{
    InitializeComponent();

    CustomToolStripRenderer r = new CustomToolStripRenderer();
    r.RoundedEdges = false;

    toolStrip1.Renderer = r;
}
于 2013-12-26T00:16:13.947 に答える