c# winforms menu padding toolstripmenu

c# - ToolStripMenuItem mayor relleno vertical, o verticalmente centrado de texto en un ToolStripMenuItem más grande



winforms padding (3)

Además de la respuesta de InBetween, puede corregir el rectángulo resaltado utilizando un renderizador personalizado y ajustando su propiedad "TextRectangle". Aquí hay un código de muestra:

var itemHeight = 36; var verticalPadding = 36 - TextRenderer.MeasureText("A", _DisplayNameFont).Height) / 2; menu.Renderer = new MyRenderer { VerticalPadding = verticalPadding }; class MyRenderer : ToolStripSystemRenderer { public int VerticalPadding { get; set; } protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e) { if (null == e) { return; } e.TextFormat &= ~TextFormatFlags.HidePrefix; e.TextFormat |= TextFormatFlags.VerticalCenter; var rect = e.TextRectangle; rect.Offset(0, VerticalPadding); e.TextRectangle = rect; base.OnRenderItemText(e); } }

Estoy intentando establecer un relleno vertical más grande para ToolStripMenuItems en un ContextMenuStrip . Sin embargo, cambiar la propiedad Padding.Top agrega relleno en la parte inferior, en lugar de la parte superior.

También intenté establecer una Altura más grande para ToolStripMenuItem , funciona, sin embargo, el texto siempre se alinea en la parte superior, incluso si la propiedad TextAlign es MiddleCenter . ¡Debe estar alineado verticalmente con el centro!

He probado diferentes configuraciones para diferentes propiedades, nada funciona. La idea es que no puedo obtener ToolStripMenuItem para tener más espacio alrededor de su texto, tanto en la parte superior como en la inferior.

Estoy usando C #, Windows Forms, Net 2.0, Visual Studio 2010 Express, Windows 7.


Agregar una nueva línea hace el trabajo.

No es la mejor solución, pero es una manera rápida de agregar algo de relleno.

Funciona bien al agregar soporte para pantallas táctiles pequeñas.

this.configToolStripMenuItem.Text = "/r/nSettings";


Puede obtener el mismo efecto usando Margin lugar de Padding lo que mantendrá el Text del ToolStripMenuItem alineado.

El inconveniente es que esto no modificará el tamaño del rectángulo resaltado cuando se selecciona el elemento, por lo que puede parecer un poco extraño si aumenta mucho la altura.