Leer en inglés

Compartir a través de


RadioButtonRenderer Clase

Definición

Proporciona métodos que se utilizan para representar un control de botón de opción (también denominado botón de radio) con o sin estilos visuales. Esta clase no puede heredarse.

C#
public sealed class RadioButtonRenderer
C#
public static class RadioButtonRenderer
Herencia
RadioButtonRenderer

Ejemplos

En el ejemplo de código siguiente se muestra cómo escribir un control personalizado que usa el DrawRadioButton método para dibujar un botón de opción que responda a los clics del mouse.

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

namespace RadioButtonRendererSample
{
    class Form1 : Form
    {
        Button button1 = new Button();
        public Form1()
            : base()
        {
            CustomRadioButton RadioButton1 = new CustomRadioButton();
          
            button1.Location = new System.Drawing.Point(175, 231);
            button1.Size = new System.Drawing.Size(105, 23);
            button1.Text = "Toggle Style";
            button1.Click += new System.EventHandler(this.button1_Click);
            Controls.Add(RadioButton1);
            Controls.Add(button1);

            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 
            // RadioButtonRenderer.DrawRadioButton automatically detects 
            // this and draws the radio button without visual styles.
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Application.VisualStyleState =
                Application.VisualStyleState ^
                VisualStyleState.ClientAndNonClientAreasEnabled;

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

    public class CustomRadioButton : Control
    {
        private Rectangle textRectangleValue = new Rectangle();
        private bool clicked = false;
        private RadioButtonState state = RadioButtonState.UncheckedNormal;

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

        // Define the text bounds so that the text rectangle 
        // does not include the radio button.
        public Rectangle TextRectangle
        {
            get
            {
                using (Graphics g = this.CreateGraphics())
                {
                    textRectangleValue.X = ClientRectangle.X +
                        RadioButtonRenderer.GetGlyphSize(g,
                        RadioButtonState.UncheckedNormal).Width;
                    textRectangleValue.Y = ClientRectangle.Y;
                    textRectangleValue.Width = ClientRectangle.Width -
                        RadioButtonRenderer.GetGlyphSize(g,
                        RadioButtonState.UncheckedNormal).Width;
                    textRectangleValue.Height = ClientRectangle.Height;
                }

                return textRectangleValue;
            }
        }

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

            RadioButtonRenderer.DrawRadioButton(e.Graphics,
                ClientRectangle.Location, TextRectangle, this.Text,
                this.Font, clicked, state);
        }

        // Draw the radio button in the checked or unchecked state.
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

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

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

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

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

Comentarios

La RadioButtonRenderer clase proporciona un conjunto de static métodos que se pueden usar para representar un control de botón de opción. La representación de un control hace referencia al hecho de dibujar la interfaz de usuario de un control. Para dibujar un botón de opción, use uno de los DrawRadioButton métodos . Estos métodos proporcionan una variedad de opciones, como dibujar texto o una imagen con el botón de opción.

Si los estilos visuales están habilitados en el sistema operativo y los estilos visuales se aplican a la aplicación actual, DrawRadioButton dibujará el botón de opción con el estilo visual actual. De lo contrario, DrawRadioButton dibujará el botón de opción con el estilo clásico Windows. Esto es útil si está dibujando un control personalizado que debería coincidir automáticamente con la configuración de estilo visual actual del sistema operativo.

Esta clase ajusta la funcionalidad de un System.Windows.Forms.VisualStyles.VisualStyleRenderer objeto que se establece en uno de los elementos expuestos por la System.Windows.Forms.VisualStyles.VisualStyleElement.Button.RadioButton clase . Para obtener más información, vea Rendering Controls with Visual Styles(Controles de representación con estilos visuales).

Propiedades

RenderMatchingApplicationState

Obtiene o establece un valor que indica si el representador utiliza el estado de la aplicación para determinar el estilo de representación.

Métodos

DrawParentBackground(Graphics, Rectangle, Control)

Dibuja el fondo del elemento primario de un control en el área especificada.

DrawRadioButton(Graphics, Point, RadioButtonState)

Dibuja un control de botón de opción (también denominado botón de radio) con el estado y en la ubicación que se hayan especificado.

DrawRadioButton(Graphics, Point, Rectangle, String, Font, Boolean, RadioButtonState)

Dibuja un control de botón de opción (también denominado botón de radio) con el estado y en la ubicación que se hayan especificado, con el texto especificado y con un rectángulo de foco opcional.

DrawRadioButton(Graphics, Point, Rectangle, String, Font, Image, Rectangle, Boolean, RadioButtonState)

Dibuja un control de botón de opción (también denominado botón de radio) con el estado y en la ubicación que se hayan especificado, con el texto y la imagen que se hayan especificado y con un rectángulo de foco opcional.

DrawRadioButton(Graphics, Point, Rectangle, String, Font, TextFormatFlags, Boolean, RadioButtonState)

Dibuja un control de botón de opción (también denominado botón de radio) con el estado y en la ubicación que se hayan especificado, con el texto y el formato de texto especificados y con un rectángulo de foco opcional.

DrawRadioButton(Graphics, Point, Rectangle, String, Font, TextFormatFlags, Image, Rectangle, Boolean, RadioButtonState)

Dibuja un control de botón de opción (también denominado botón de radio) con el estado y en la ubicación que se hayan especificado, con el texto, el formato de texto y la imagen que se hayan especificado, y con un rectángulo de foco opcional.

GetGlyphSize(Graphics, RadioButtonState)

Devuelve el tamaño (en píxeles) del glifo del botón de opción (también denominado botón de radio).

IsBackgroundPartiallyTransparent(RadioButtonState)

Indica si el fondo del botón de opción (también denominado botón de radio) tiene partes semitransparentes o con mezcla alfa.

Se aplica a

Producto Versiones
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

Consulte también