Frage

Hat jemand wissen, ob und wie ich bin in der Lage, die Farbe des Bildstreifens auf einem einfachen Dropdown in Visual Studio 2008 zu ändern? Derzeit mit einer Drop-Down-Menü, ich habe meine eigene collectn der Elemente, und neben jedem auf der Dropdown-Menü ist ein Bildband, das curently ist eine graue Farbe mit einem hell- bis dunkel Gradienten. Ich bin gespannt, ob diese Farbe, um herauszufinden, geändert werden kann oder möglicherweise vollständig entfernt? Vielen Dank im Voraus Jungs, Craig.

War es hilfreich?

Lösung

Ich werde Sie fragen über WinForms zu übernehmen, wie ich über WPF nicht kennen.

Wenn Sie nur die Bildstreifen ausblenden möchten, können Sie die ShowImageMargin und ShowCheckMargin Eigenschaften auf false gesetzt. Allerdings werden Sie für Ihre Menüpunkte nicht in der Lage Bilder angezeigt werden.

Unter XP zumindest die Einstellung der RenderMode Eigenschaft der Drop-Down Sie ToolStripRenderMode.System ein Menü geben ohne Bildrand Dekoration; obwohl es nicht den visuellen Stil Ihrer Anwendung entsprechen kann.

Wenn Sie eine BackColor für jedes Ihrer Menüpunkte gesetzt ist, wird der Bildrand verdeckt werden.

, um die Bildrand auszublenden, ohne den visuellen Stil des Drop-Down zu ändern, benötigen Sie einen Renderer mit einem leeren OnRenderImageMargin Funktion, etwa so:

class MyRenderer : ToolStripProfessionalRenderer
{
    protected virtual void OnRenderImageMargin(ToolStripRenderEventArgs e)
    {
        // do nothing
    }
}

und stellen Sie dann die Drop-Down- Renderer Eigenschaft auf eine Instanz der neuen Renderer-Klasse. Sie konnten die Farbe des Bildrandes in ähnlicher Weise ändern, indem die ColorTable Renderer ändern.

Aber, bevor Sie irgendwelche von denen tun, fragen Sie sich:

  • Sie haben eine Benutzerfreundlichkeit Nutzen Sie die Schnittstelle zu etwas weniger vertraut zu ändern?
  • Wenn ja, ist dieser Vorteil größer ist als der Nutzen des Codes einfach zu halten, so dass Sie schnell auf Benutzer-Feedback reagieren können?

Die Antwort auf die erste Frage ist in der Regel mit ‚Nein‘.

Andere Tipps

Sie können dieses Verhalten erkennen, durch eine Unterklasse von Toolstriprenderer Erstellen und Überschreiben der entsprechenden Rendering-Methoden. Siehe MSDN für Beispiele.

Ich gehe davon aus Sie eine WinForms-Lösung suchen. Für WPF / XAML ist die Lösung natürlich ganz anders und kann durch Änderung der Steuervorlagen erreicht werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top