Is it possible to change the border color of a toolstrip menu dropdown list.
Ja. Eine Klasse, die von ProfessionalColorTable
erbt, funktioniert wie erwartet:
Beim Laden des Formulars:
%Vor% Wenn visuelle Stile nicht aktiviert sind, werden nicht alle Farbtabellenelemente verwendet und stattdessen wird SystemColors
verwendet. Sie aktivieren visuelle Stile in Main()
:
Sie können auch die Systemfarben wie im ctor angezeigt deaktivieren. Der Standardwert sollte false sein, unabhängig davon, ob visuelle Stile aktiviert sind oder nicht, aber vielleicht hat etwas anderes sie geändert?
%Vor% Sowohl EnableVisualStyles()
als auch UseSystemColors = false;
müssen vorhanden sein, damit all die Rendering-Elemente in Ihrer Farbtabelle implementiert werden können, ansonsten werden nur einige davon verwendet. (Obwohl MenuBorder
scheint zu funktionieren, egal was.) Ansonsten sind die Ergebnisse wie erwartet:
Der Menüverlauf geht von AliceBlue zu DodgerBlue; Ein Objekt mit der Maus darüber verwendet einen von oben nach unten verlaufenden Farbverlauf von LawnGreen zu MediumSeaGreen (Maus nicht gezeigt).
Im geöffneten Zustand ist der Menürand Fuschia (mmmm, beruhigend!)
Wenn Sie die Maus über eines der Objekte bewegen (Maus nicht gezeigt), verwendet das Objekt die MenuItemSelected
Farbe, die Consilk war.
Wenn Sie Schwierigkeiten haben, Ihre Überschreibungen zum Laufen zu bringen, überprüfen Sie, ob Sie die richtigen verwenden (oder dass sie meinen, was der Name impliziert, einige sind zuerst irreführend).
Sie können auch überprüfen, ob Sie ein MenuStrip
für das Menü verwenden, Net hat eine andere (ältere) Menü-Klasse, obwohl Sie suchen müssen, um es zu finden. Sie können auch ein beliebiges Design ändern oder deaktivieren, um zu sehen, ob dies nachteilige Auswirkungen haben könnte.
Um die Rahmenfarbe zu ändern, genügt es, der Plutonix-Lösung zu folgen, die in der akzeptierten Antwort beschrieben wird. Um diesen weißen Rahmen zwischen dem Element- und Menürahmen zu entfernen, sollten Sie jedoch eine der folgenden Lösungen verwenden:
Sie können dies tun, indem Sie Ihre benutzerdefinierte Farbtabelle implementieren, die ProfessionalColorTable und Überschreiben der korrekten Eigenschaften. Gehen Sie dazu folgendermaßen vor:
Schritte
CustomColorTable-Code
%Vor%Formularcode laden
%Vor%Screenshot
Hier ist ein normaler Screenshot
Und hier ist ein 2x vergrößerter Screenshot:
Es gibt auch eine alternative Lösung, die anwendbar ist, wenn Sie Bilder in Ihren Menüpunkten nicht verwenden möchten. Suchen Sie in diesem Fall nach der DropDown-Eigenschaft Ihrer Dropdown-Schaltfläche, und setzen Sie sie auf ToolStripDropDownMenu. Setzen Sie dann die ShowImageMargin-Eigenschaft auf false und BackColor auf die gewünschte Farbe (blau).
%Vor%Ich kann jetzt die Demo-Anwendung nicht machen, aber Screenshots in diesem Artikel Ссылка beweist uns das Ändern der Rahmenfarbe ist möglich.
Dieser Typ hat eine Bibliothek entwickelt, aber es basiert auf der Standard-ToolStrip-Implementierung.
Ich hoffe, dass dieser Link hilfreich sein wird.
Tags und Links c# winforms toolstripmenu