【问题标题】:How to configure ToolStripDropdownbutton size to match size of the parent dropdown button?如何配置 ToolStripDropdownbutton 大小以匹配父下拉按钮的大小?
【发布时间】:2011-09-05 13:46:49
【问题描述】:

我正在开发一个 C# 桌面应用程序。我正在使用menu strips control,其中我使用了drop down button

每当单击下拉菜单时,它都会显示项目,但下拉菜单的宽度似乎是个问题,它总是更大。我希望它与按钮的大小相同。

这是截图:

我正在努力配置的内容:

  1. 我希望 DropDown 的宽度与按钮的宽度相同。
  2. 下拉菜单的箭头应该更大。
  3. 按钮应该是弯曲的,而不是扁平的,它是一个 ToolStripDropdownbutton。

【问题讨论】:

  • 您是在谈论 wpf、silverlight、winforms 还是...?
  • 这不是菜单条中的适当控件。它被设计用于 ToolStrip。它会根据工具条高度自动调整自身大小。它在菜单条中将具有固定大小,因为您无法更改其高度,它由字体大小预设。

标签: c# .net windows


【解决方案1】:

不幸的是,您在使用此控件时违反了规定,您需要借助自己的控件或自定义绘画来获得您想要的内容。

您应该能够使用自定义绘画来更改下拉箭头的形状/大小。 您应该能够通过覆盖控件来限制下拉菜单的大小。 但是,由于下拉菜单中有刻度和快捷字符串的空间,我怀疑您可能需要做的工作比您预期的要多。

以下是一些可能对您有所帮助的建议: http://connect.microsoft.com/VisualStudio/feedback/details/97456/owner-drawn-toolstripcombobox

这建议使用 ToolStripControlHost(control) 来托管任意控件。 举个简单的例子:http://alala666888.wordpress.com/2010/07/15/custom-toolstripitem/

http://www.codeproject.com/KB/static/DropDownContainer.aspx 这个项目(尽管是在 VB.Net 中)显示了编写自己的控件来做同样事情的许多问题。

还有这篇关于写ToolStripRenderers的文章: http://www.codeproject.com/KB/menus/CustomToolStripRenderer.aspx

这是另一个基于 C# 的自定义控件示例: http://www.codeproject.com/KB/selection/office2003colorpicker.aspx

【讨论】:

    【解决方案2】:

    您可以改用 ComboBox 控件并将 DropDownStyle 更改为 DropDownList。

    有关如何使用带有 ComboBox 的按钮的一些信息可以在此处找到:http://social.msdn.microsoft.com/forums/en-US/winformsdesigner/thread/5d65f987-834c-465f-a944-622831d4cfb0

    【讨论】:

      猜你喜欢
      • 2016-05-27
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多