4

手動で高さを 60 に設定して、contextmenustrip アイテムのテキストを中央に垂直に揃えようとしています。ただし、何を試しても、テキストは常に上部にあります。同じアイテム内の画像は、何もしなくても正しく配置されます。

私は次のことを試しました:

 foreach (ToolStripItem item in ContextMenuStrip1.Items)
        {
            item.AutoSize = false;
            item.Height = 60;
            item.Width = maxWidth;
            item.TextAlign = ContentAlignment.MiddleCenter;
        }

新しいcustomeRenderクラスを作成します:

public sealed class CustomRenderer : ToolStripProfessionalRenderer
{
    protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
    {
        if (e.Item.IsOnDropDown)
        {
            e.TextFormat |= TextFormatFlags.VerticalCenter;
        }
        base.OnRenderItemText(e);
    }
}

しかし、これは私にはうまくいきません。テキストはアイテムの上部に垂直に残ります。これらのアイテムの 1 つに追加された画像は、矢印のように中央に配置されます。

どんな助けでも素晴らしいでしょう。エイダン

4

2 に答える 2

1

ToolStripItem の代わりに ToolStripButton を使用します - テキストの配置はこのコントロールでうまく機能するようです

var b = new ToolStripButton("Hello");
b.TextAlign = ContentAlignment.MiddleCenter;
contextMenuStrip1.Items.Add(b);
于 2011-06-17T11:09:13.763 に答える