Pergunta

Alguém sabe se, e como eu sou capaz de mudar a cor da tira imagem em uma simples gota para baixo no visual studio 2008? Atualmente com um menu drop-down Eu tenho meu próprio collectn de itens, e ao lado de cada um no menu drop-down é uma faixa de imagem, que é curently uma cor cinza com uma luz para gradiente escuro. Estou ansioso para descobrir se esta cor pode ser alterada ou possivelmente removido por completo? Agradecemos antecipadamente caras, Craig.

Foi útil?

Solução

Eu estou indo supor que você está perguntando sobre winforms, como eu não sei sobre WPF.

Se você quiser apenas para esconder a faixa de imagens, você pode definir o ShowImageMargin e propriedades ShowCheckMargin false. No entanto, você não será capaz de exibir imagens para os seus itens do menu.

No XP, pelo menos, definir o propriedade RenderMode da suspenso para ToolStripRenderMode.System lhe dará um menu sem qualquer decoração margem da imagem; que ele não pode combinar com o estilo visual da sua aplicação.

Se você definir um BackColor para cada um dos itens do menu, a margem de imagem será obscurecida.

Para ocultar a margem da imagem, sem alterar o estilo visual do menu suspenso, você vai precisar para criar um processador com um vazio OnRenderImageMargin função, assim:

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

e, em seguida, definir o Renderer propriedade para uma instância da nova classe renderizador. Você pode mudar a cor da margem da imagem de forma semelhante, modificando ColorTable do renderizador.

Mas, antes de fazer qualquer um desses, pergunte-se:

  • Existe um benefício de usabilidade para alterar a interface para algo menos familiar?
  • Se houver, é este benefício maior do que o benefício de manter seu código simples para que você possa responder rapidamente ao feedback dos utilizadores?

A resposta à primeira pergunta é geralmente 'Não'.

Outras dicas

Você pode perceber esse comportamento, criando uma subclasse de ToolStripRenderer e substituindo os métodos de processamento adequados. Veja MSDN para exemplos.

Eu estou supondo que você está procurando uma solução WinForms. Para WPF / Xaml a solução é, naturalmente, completamente diferente e pode ser realizado alterando os modelos de controle.

scroll top