2011-09-05 139 views
7

我正在研究C#桌面应用程序。我正在使用menu strips control,其中我使用了drop down button如何配置ToolStripDropdownbutton大小以匹配父级下拉按钮的大小?

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

下面是截图:

Screenshot

什么我奋力配置:

  1. 我想下拉的宽度是相同按钮。
  2. 下拉箭头应该更大。
  3. 该按钮应该是弯曲的,而不是平面样式,它是一个ToolStripDropdownbutton。
+0

你说的是WPF,Silverlight中,的WinForms还是...? – WaltiD

+0

AutoSize == true? – Blau

+2

这不是菜单栏中的适当控件。它被设计用于ToolStrip上。它会自动根据工具条高度自动调整大小。它将在菜单条中具有固定的大小,因为您无法更改它的高度,它是由字体大小预设的。 –

回答

1

不幸的是你要对粮食的控制,而且你需要求助于自己的控件或自定义画得到你想要的。

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

这里有几个指针,你可能会发现有用: http://connect.microsoft.com/VisualStudio/feedback/details/97456/owner-drawn-toolstripcombobox

这表明使用ToolStripControlHost(控制)来承载任意控制。 用一个简单的例子: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