首先,简要概述一下我当前的 UI 是什么样的:
请注意,除了 ToolStripControlHost 中的内容之外,其他所有内容都是标准 WinForms。
简而言之,我想要类似于 ToolStripControlHost 的东西,但我需要将它“固定”到菜单的底部,主要是这样当有很多项目时,它不会像其他菜单项一样滚动。
经过一番搜索,我得出结论,也许定制绘画可能是解决方案,但不知道是否是这种情况。
这是一些示例代码,但我不确定它有多大用处:
public ToolStripDropDownButtonContainer(ToolStripDropDownButton button)
{
this.UIControl = button.GetCurrentParent();
this.Button = button;
if (this.Button.Tag == null)
{
this.Button.Tag = true;
this.Button.DropDownDirection = ToolStripDropDownDirection.AboveLeft;
ToolStripDropDownMenu menu = (ToolStripDropDownMenu)this.Button.DropDown;
menu.SuspendLayout();
try
{
menu.BackColor = Color.White;
menu.ShowImageMargin = false;
menu.ShowCheckMargin = false;
menu.AutoSize = true;
menu.Margin = Padding.Empty;
menu.Padding = Padding.Empty;
menu.GripMargin = Padding.Empty;
menu.GripStyle = ToolStripGripStyle.Hidden;
menu.MinimumSize = new Size(310, 0);
menu.MaximumSize = menu.MinimumSize;
// TODO pin panel (or some control) to the bottom-side of the menu
}
finally
{
menu.ResumeLayout();
}
}
}