2011-06-15 6 views
2

수동으로 높이를 60으로 설정하여 acontextmenustrip 항목의 가운데에 텍스트를 세로로 정렬하려고합니다. 그러나 텍스트를 항상 시도해도 상단에. 같은 항목의 이미지는 나 자신과 올바르게 정렬됩니다.수동으로 설정된 높이가있는 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); 
    } 
} 

그러나이 나를 위해 작동하지 않습니다

나는 다음과 같은 시도했습니다. 텍스트는 항목의 맨 위에 세로로 유지됩니다. 이 항목들 중 하나에 추가 된 이미지는 가운데에오고 화살표는 더 있습니다.

도움이 될 것입니다. 에이단

+0

에 잘 작동 다음 주 (일 경우) 것으로 보인다. ToolStripItem에 대한 onpaint를 오버라이드하려고합니다. – AidanO

+0

작동하지 않거나 적어도 아직 작동하지 않습니다. ( – AidanO

답변

1

는 사용하십시오 ToolStripButton 대신 ToolStripItem을 - 텍스트 정렬은 게시 할 예정입니다, 내가 할 수있는 방법이 있다고 생각이 컨트롤

var b = new ToolStripButton("Hello"); 
b.TextAlign = ContentAlignment.MiddleCenter; 
contextMenuStrip1.Items.Add(b); 
+0

이 코드를 사용하지만 모양과 느낌이 아니라 단추를 사용하여 픽스를 적용했습니다. 항목이 다르다. 클릭 가능 영역이 그렇다.하지만 작업을 수행하는 데 +1이 필요하다. :) 감사합니다. – AidanO