Domanda

Leggo alcuni altri articoli su come le persone vogliono personalizzare i colori e i gradienti di un menisip.

Quello che voglio fare è rimuovere il gradiente in modo che il Menustrip sia dello stesso colore del resto della forma che, per me, è le impostazioni predefinite utilizzate durante la creazione di un nuovo progetto WinForms.Ho provato a cambiare il RenderMode in "System" e funziona un tipo di tipo, ma lascia una linea bianca la lunghezza del Menustrip quando costruisco e lo eseguo.Devo fare un po 'di disegno e dipingere?O c'è un modo più semplice?

È stato utile?

Soluzione

Questa è fondamentalmente la stessa domanda di questo uno

La risposta riferisce questo Microsoft Bug Post

Sembra essere un problema fino al 2005. Anche se i commenti dicono che è un bug MS che non sarà riparato, c'è una soluzione alternativa che prevede l'implementazione del tuo rendering:

public class MySR : ToolStripSystemRenderer
{
    public MySR()
    {
    }

    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
    {
        //base.OnRenderToolStripBorder(e);
    }
}
.

Allora tutto ciò che devi fare è impostare il rendering del tuo Menustrip su quello che hai appena implementato:

menustrip1.Renderer = new MySR();
.

L'ho appena provato e sembra funzionare bene.

Altri suggerimenti

Sono d'accordo con Yetti ma se desideri mantenere i tuoi confini puoi provare questo.Sostituisci la spazzola con il tuo colore di sfondo

protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
  base.OnRenderToolStripBorder(e);
  e.Graphics.FillRectangle(Brushes.Black, e.ConnectedArea);
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top