工具条下拉按钮不够大

时间:2014-04-11 13:07:33

标签: c# winforms toolstrip

来自stackoverflow的答案看起来很有希望,但还没有运气。此外,我可能还没有足够的经验可以看到它。

简单我想:我在ToolStripDropDownButton中寻找一个更大的下拉箭头作为集合中的项目。工具条下拉按钮非常小。我希望它是当前尺寸的3倍。略大也会带来好处。选中下拉菜单后会显示一个项目菜单。

是否可以使用ToolStripRenderer或用户控件来获得所需(除非有一个我看不到的属性)或??我对Winforms环境中的自定义控件并不熟悉,因此任何有关片段或方向的帮助都会有所帮助。换句话说,想知道,如果需要用户控件,我需要做些什么来使它适用于这种情况?也就是说,我正在寻找任何可行的解决方案。感谢您的任何帮助/想法!!!!

2 个答案:

答案 0 :(得分:2)

尝试制作自己的渲染器并覆盖OnRenderArrow方法:

public class MyRenderer : ToolStripProfessionalRenderer {
  protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e) {    
    if (e.Item.GetType() == typeof(ToolStripDropDownButton)) {
      Rectangle r = e.ArrowRectangle;
      List<Point> points = new List<Point>();
      points.Add(new Point(r.Left - 2, r.Height / 2 - 3));
      points.Add(new Point(r.Right + 2, r.Height / 2 - 3));
      points.Add(new Point(r.Left + (r.Width / 2),
                           r.Height / 2 + 3));
      e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
      e.Graphics.FillPolygon(Brushes.Black, points.ToArray());
    } else {
      base.OnRenderArrow(e);
    }
  }
}

然后将其应用于ToolStrip:

toolStrip1.Renderer = new MyRenderer();

您可能需要将按钮的AutoSize属性更改为false,并自行设置按钮的宽度以获得适当的空间。

enter image description here

答案 1 :(得分:1)

您可以通过将AutoSize属性设置为false来更改按钮的大小,然后将Size属性设置为您需要的属性。至于使箭头更大,我不认为你可以做到这一点,但至少它会使按钮更大。