簡體   English   中英

當光標離開激活的項目時,工具條菜單項會自動更改其顏色

[英]Tool strip menu item changes its color by itself when cursor leaves activated item

我已經創建了Windows窗體工具,並添加了一個包含幾個項目的菜單條和一個下拉菜單。 一切正常,當我選擇下拉菜單項“文件”時,它會正確展開。 但是,當光標離開工具條菜單項“文件”到下拉菜單項時,它會自動將其顏色更改為白色,從而使您無法再讀取白色文本:

未單擊的菜單欄

單擊的菜單欄,鼠標光標放在下拉菜單項上

之前,菜單欄的顏色更改也存在類似的問題,因此我已經定義了渲染器:

class BlueRenderer : ToolStripProfessionalRenderer
{
    protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
    {
        if (!e.Item.Selected)
        {
            base.OnRenderMenuItemBackground(e);
            e.Item.BackColor = Color.MediumBlue;  

        }
        else
        {                
            Rectangle rc = new Rectangle(Point.Empty, e.Item.Size);
            e.Graphics.FillRectangle(Brushes.Blue, rc);                
            e.Graphics.DrawRectangle(Pens.MediumBlue, 1, 0, rc.Width - 2, rc.Height - 1);                
            e.Item.BackColor = Color.MediumBlue;
            base.OnRenderItemBackground(e);
            e.Item.BackColor = Color.MediumBlue;
        }
    }
    protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
    {
        base.OnRenderItemText(e);
        if (!e.Item.Selected)
        {
            e.Item.ForeColor = SystemColors.ControlLightLight;
        }
        else
        {
            e.Item.ForeColor = SystemColors.ControlLightLight;
        }
    }
}

我認為我必須在渲染器中更改另一種屬性或行為,但我什至不知道哪個屬性或如何更改它。 請幫助我,當鼠標光標離開該元素時,將itemcolor保持為藍色/中等藍色。

干杯

弗洛里安

通過嘗試一些渲染器選項找到了解決方案:我刪除了以前的“ BlueRenderer”,而是指定了ProfessionalColorTable:

public class ownColorTable : System.Windows.Forms.ProfessionalColorTable
{
    public override Color MenuItemPressedGradientBegin
    {
        get
        {
            return Color.Blue;
        }
    }

    public override Color MenuItemPressedGradientEnd
    {
        get
        {
            return Color.Blue;
        }
    }

然后,按如下方式初始化ToolStripProfessionalRenderer:

menuStrip1.Renderer = new ToolStripProfessionalRenderer(new ownColorTable());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM