Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe CheckBoxRenderer

Fornece métodos usados para processar um controle caixa de seleção, com ou sem estilos visuais. Esta classe não pode ser herdada.

System.Object
  System.Windows.Forms.CheckBoxRenderer

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)

public sealed class CheckBoxRenderer

O tipo CheckBoxRenderer expõe os membros a seguir.

  NomeDescrição
Propriedade públicaMembro estáticoRenderMatchingApplicationStateObtém ou define um valor que indica se o processador usa o estado do aplicativo para determinar o estilo de renderização.
Superior

  NomeDescrição
Método públicoMembro estáticoDrawCheckBox(Graphics, Point, CheckBoxState)Desenha um controle caixa de seleção no estado especificado e local.
Método públicoMembro estáticoDrawCheckBox(Graphics, Point, Rectangle, String, Font, Boolean, CheckBoxState)Desenha um controle caixa de seleção no estado especificado e local, com o texto especificado e com um retângulo de foco opcional.
Método públicoMembro estáticoDrawCheckBox(Graphics, Point, Rectangle, String, Font, TextFormatFlags, Boolean, CheckBoxState)Desenha um controle caixa de seleção no estado especificado e local, com o texto especificado e a formatação de texto e com um retângulo de foco opcional.
Método públicoMembro estáticoDrawCheckBox(Graphics, Point, Rectangle, String, Font, Image, Rectangle, Boolean, CheckBoxState)Desenha um controle caixa de seleção no estado especificado e local, com o texto especificado e a imagem e com um retângulo de foco opcional.
Método públicoMembro estáticoDrawCheckBox(Graphics, Point, Rectangle, String, Font, TextFormatFlags, Image, Rectangle, Boolean, CheckBoxState)Desenha um controle caixa de seleção no estado especificado e local; com o texto especificado, a formatação de texto e imagem; e com um retângulo de foco opcional.
Método públicoMembro estáticoDrawParentBackgroundDesenha o plano de fundo do pai de um controle na área especificada.
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método públicoMembro estáticoGetGlyphSizeRetorna o tamanho de glifo a caixa de seleção.
Método públicoGetHashCodeServe como a função de hash padrão. (Herdado de Object.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoMembro estáticoIsBackgroundPartiallyTransparentIndica se o plano de fundo da caixa de seleção tem semitransparentes ou combinação alfa pedaços.
Método públicoToStringRetorna uma string que representa o objeto atual. (Herdado de Object.)
Superior

O CheckBoxRenderer classe fornece um conjunto de static métodos que podem ser usados para processar um controle caixa de seleção. Processamento de um controle refere-se a interface do usuário de um controle de desenho. Para desenhar uma caixa de seleção, use um do DrawCheckBox métodos. Esses métodos fornecem uma variedade de opções, como texto de desenho ou uma imagem com a caixa de seleção.

Se os estilos visuais estão habilitados no sistema operacional e estilos visuais são aplicados ao aplicativo atual, DrawCheckBox desenhará a caixa de seleção com o estilo visual atual. Caso contrário, DrawCheckBox desenhará a caixa de seleção com o estilo clássico do Windows. Isso é útil se estiver desenhando um controle personalizado que automaticamente deve corresponder a configuração atual de estilo visual do sistema operacional.

Essa classe encapsula a funcionalidade de um System.Windows.Forms.VisualStyles.VisualStyleRenderer que é definido como um dos elementos expostos pelo System.Windows.Forms.VisualStyles.VisualStyleElement.Button.CheckBox classe. Para mais informação, veja Controles de processamento com estilos visuais.

Windows XP Home Edition, Windows XP Professional x64 Edition, Windows Server 2003 Observação sobre a plataforma: Só há suporte para estilos visuais nessas plataformas.

O exemplo de código a seguir demonstra como escrever um controle personalizado que usa o DrawCheckBox método para desenhar uma caixa de seleção que responde a cliques de mouse.


using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;

namespace CheckBoxRendererSample
{
    class Form1 : Form
    {
        public Form1()
            : base()
        {
            CustomCheckBox CheckBox1 = new CustomCheckBox();
            Controls.Add(CheckBox1);

            if (Application.RenderWithVisualStyles)
                this.Text = "Visual Styles Enabled";
            else
                this.Text = "Visual Styles Disabled";
        }

        [STAThread]
        static void Main()
        {
            // If you do not call EnableVisualStyles below, then 
            // CheckBoxRenderer.DrawCheckBox automatically detects 
            // this and draws the check box without visual styles.
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }
    }

    public class CustomCheckBox : Control
    {
        private Rectangle textRectangleValue = new Rectangle();
        private Point clickedLocationValue = new Point();
        private bool clicked = false;
        private CheckBoxState state = CheckBoxState.UncheckedNormal;

        public CustomCheckBox()
            : base()
        {
            this.Location = new Point(50, 50);
            this.Size = new Size(100, 20);
            this.Text = "Click here";
            this.Font = SystemFonts.IconTitleFont;
        }

        // Calculate the text bounds, exluding the check box.
        public Rectangle TextRectangle
        {
            get
            {
                using (Graphics g = this.CreateGraphics())
                {
                    textRectangleValue.X = ClientRectangle.X +
                        CheckBoxRenderer.GetGlyphSize(g,
                        CheckBoxState.UncheckedNormal).Width;
                    textRectangleValue.Y = ClientRectangle.Y;
                    textRectangleValue.Width = ClientRectangle.Width -
                        CheckBoxRenderer.GetGlyphSize(g,
                        CheckBoxState.UncheckedNormal).Width;
                    textRectangleValue.Height = ClientRectangle.Height;
                }

                return textRectangleValue;
            }
        }

        // Draw the check box in the current state.
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            CheckBoxRenderer.DrawCheckBox(e.Graphics,
                ClientRectangle.Location, TextRectangle, this.Text,
                this.Font, TextFormatFlags.HorizontalCenter,
                clicked, state);
        }

        // Draw the check box in the checked or unchecked state, alternately.
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            if (!clicked)
            {
                clicked = true;
                this.Text = "Clicked!";
                state = CheckBoxState.CheckedPressed;
                Invalidate();
            }
            else
            {
                clicked = false;
                this.Text = "Click here";
                state = CheckBoxState.UncheckedNormal;
                Invalidate();
            }
        }

        // Draw the check box in the hot state. 
        protected override void OnMouseHover(EventArgs e)
        {
            base.OnMouseHover(e);
            state = clicked ? CheckBoxState.CheckedHot :
                CheckBoxState.UncheckedHot;
            Invalidate();
        }

        // Draw the check box in the hot state. 
        protected override void OnMouseUp(MouseEventArgs e)
        {
            base.OnMouseUp(e);
            this.OnMouseHover(e);
        }

        // Draw the check box in the unpressed state.
        protected override void OnMouseLeave(EventArgs e)
        {
            base.OnMouseLeave(e);
            state = clicked ? CheckBoxState.CheckedNormal :
                CheckBoxState.UncheckedNormal;
            Invalidate();
        }
    }
}


.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Qualquer estático (Shared no Visual Basic) membro público desse tipo é thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft