Wie beurteilen Sie die Farbe Standardhintergrund für menustrips und Menüs in .NET ändern?

StackOverflow https://stackoverflow.com/questions/617224

  •  03-07-2019
  •  | 
  •  

Frage

In diesen Tagen mit Visual C # (Visual C # 2008 speziell) scheint es, dass die Standardfarbe für menustrips und Menüs ist blau, was mir wirklich seltsam aussieht und ist etwas, das ich wirklich außer Kraft setzen möchten. Ich vermute, dass Visual Studio ist diese blaue Farbe von meinem ausgewählten System Thema Aufnehmen oder so etwas, aber keine andere Windows-Anwendung auf meinem System läuft diese blaue Farbe hat, so weiß ich nicht, warum meine .NET-Anwendungen wären es haben müssen . ;)

Wie auch immer, ich bemerkt, dass, wenn ich eine Anwendung erstellen, eine ältere Version von Visual Studio (Visual Studio.NET) verwendet wird, die Standardhintergrundfarbe für menustrips und Menüs der Standard-grau ist, die man erwarten würde, um zu sehen. Dies ist eine Lösung für das Problem, das ich nehme an, aber es scheint wie ein bisschen eines dummen und ich würde wirklich eine Art und Weise außer Kraft setzt es in der aktuellen Version von Visual C # finden möge.

War es hilfreich?

Lösung

DotNet 1.x hat keinen Menustrip haben, und verwendet ein Standard-Windows-Menü.

DotNet-Versionen 2.0 und höher den Menustrip hat, und VS 7 und entfernt das MainMenu aus der Toolbox und ersetzt sie durch eine Menustrip, der das Office verwendet Xp 2003 Thema, damit das blaue Farbschema für den Menustrip und Toolstrip.

Die MainMenu kann noch auf die Toolbox für ein Standard-Windows-Menü hinzugefügt werden.

Andere Tipps

Stellen Sie die " Render " Option des Menustrip zu " System " anstelle von "managerRenderMode"

:)

Haben Sie versucht, die Hintergrundfarbe Ihres Menustrip einstellen? Sie sollten wie etwas tun können:

this.menuStrip1.BackColor = Color.FromKnownColor(KnownColor.Control);

Sie können eigene Renderer machen

    public class BrowserMenuRenderer : ToolStripProfessionalRenderer
{
    public BrowserMenuRenderer() : base(new BrowserColors()) {}
}
public class BrowserColors : ProfessionalColorTable
{
    public override Color MenuItemSelected
    {
        get { return Color.FromArgb(30, 30, 30); }
    }
    public override Color MenuItemBorder
    {
        get { return Color.FromArgb(30, 30, 30); }
    }
    public override Color MenuItemSelectedGradientBegin
    {
        get { return Color.FromArgb(30, 30, 30); }
    }
    public override Color MenuItemSelectedGradientEnd
    {
        get { return Color.FromArgb(30, 30, 30); }
    }
}

Dann einfach Sie Ihre Menustrip des Renderers als YourRenderer gesetzt

Sie können den Render-Modus verwenden, aber das nur setzt das System Thema auf dem Standard. .net können Sie die Hintergrundfarbe und die für die Farbe ändern, aber wenn man den Mauszeiger über sie es zeigt immer noch die Standardfarben. Heres eine Weise um, dass ...

sein sehr einfach mit dem „DropDownOpening“, „DropDownClosed“ und „MouseEnter-“ Veranstaltungen.

zu erreichen
private void fileToolStripMenuItem_DropDownOpening(object sender, EventArgs e){

    // When the user clicks on "File" it will change to red.
    fileToolStripMenuItem.ForeColor = Color.Red;
}


private void testToolStripMenuItem_MouseEnter(object sender, EventArgs e){

    // When the user hovers over a child of "file" called "test", "file" turns orange.
    fileToolStripMenuItem.ForeColor = Color.Orange;
}


private void test2ToolStripMenuItem_MouseEnter(object sender, EventArgs e){

    // When the user hovers on a child of "file" called "test2", "file" turns blue.
    fileToolStripMenuItem.ForeColor = Color.Blue;
}


private void fileToolStripMenuItem_DropDownClosed(object sender, EventArgs e){

    // When the user leaves the "file" menu, it gets restored back to black.
    fileToolStripMenuItem.ForeColor = Color.Black;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top