2011-06-15 27 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 2011-08-02 16:19:20

+0

它沒有工作,或者至少我還沒有得到它的工作:( – AidanO 2011-08-12 15:53:12

回答

1

使用ToolStripButton,而不是在ToolStripItem - 文本對齊方式似乎很好地工作在這個控制

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

我強制使用此代碼的修復程序,但使用按鈕的外觀和感覺,而不是一個項目是不同的。就像可點擊區域,但+1爲獲得對齊工作:)謝謝。 – AidanO 2011-06-17 16:11:58