.Net MenuStrip gama de cores de fundo
-
02-07-2019 - |
Pergunta
Eu preciso colocar um controle para a direita da minha MenuStrip. Os fades MenuStrip na cor longe da BackColor no lado esquerdo para algo mais branco à direita, e, idealmente, eu gostaria de fazer a minha pequena mistura de controle no por ter o mesmo backColor como o MenuStrip tem naquele lado. Alguém sabe como essa cor é calculado?
Na pior das hipóteses, você pode recomment um aplicativo pequeno para amostragem cores fora da tela?
[Update] A amostragem não é uma abordagem útil se o MenuStrip pode ser redimensionada
Solução
O processador tira ferramenta desenha um gradiente entre duas cores que são definidos na ProfessionalColorTable que é passado para o ToolStripProfessionalRenderer construtor. Ele usa o MenuStripGradientBegin e < a href = "http://msdn.microsoft.com/en-us/library/system.windows.forms.professionalcolortable.menustripgradientend.aspx" rel = "nofollow"> noreferrer valores MenuStripGradientEnd .
Então, você precisa recuperar esses dois valores e, em seguida, desenhar o plano de fundo de forma adequada como um gradiente linear.
Outras dicas
i cores de amostra usando Paint.Net:. Faça um screendump de toda a tela, ou janela, e depois usar Paint.Net para provar a cor
O fundo de ToolStrip (ou seja, MenuStrip, StatusStrip, etc ...) não é codificado. Olhar para a classe "ToolStripRender" e classes derivadas "ToolStripSystemRenderer" e "ToolStripProfessionalRender". Eles têm vários método para desenhar peças de ToolStrip.