まず、現在の 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();
}
}
}