Domanda

Devo mettere un controllo a destra del mio MenuStrip. Il MenuStrip si dissolve di colore dal BackColor sul lato sinistro a qualcosa di più bianco sulla destra, e idealmente mi piacerebbe che il mio piccolo controllo si fondesse avendo lo stesso BackColor del menustrip su quel lato. Qualcuno sa come viene calcolato quel colore?

Nel peggiore dei casi, puoi consigliare una piccola app per campionare i colori dallo schermo?

[Aggiornamento] Il campionamento non è un approccio utile se il menustrip può essere ridimensionato

È stato utile?

Soluzione

Il renderer della striscia degli strumenti disegna un gradiente tra due colori definiti nella ProfessionalColorTable che viene passato nella ToolStripProfessionalRenderer costruttore. Utilizza MenuStripGradientBegin e < a href = "http://msdn.microsoft.com/en-us/library/system.windows.forms.professionalcolortable.menustripgradientend.aspx" rel = "nofollow noreferrer"> MenuStripGradientEnd .

Quindi è necessario recuperare questi due valori e quindi disegnare lo sfondo in modo appropriato come un gradiente lineare.

Altri suggerimenti

Campionamento dei colori con Paint.Net: crea una panoramica dell'intero schermo o finestra, quindi usa Paint.Net per campionare il colore.

Lo sfondo di ToolStrip (ovvero MenuStrip, StatusStrip, ecc ...) non è codificato. Cerca " ToolStripRender " classe e classi derivate "ToolStripSystemRenderer" e " ToolStripProfessionalRender " ;. Hanno diversi metodi per disegnare parti di ToolStrip.

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