SupportsPreviewControlAttribute Clase

Definición

Indica si un diseñador de controles requiere una instancia de vista preliminar del control en tiempo de diseño. Esta clase no puede heredarse.

public ref class SupportsPreviewControlAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class SupportsPreviewControlAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type SupportsPreviewControlAttribute = class
    inherit Attribute
Public NotInheritable Class SupportsPreviewControlAttribute
Inherits Attribute
Herencia
SupportsPreviewControlAttribute
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo marcar un diseñador de controles con el SupportsPreviewControlAttribute atributo . El ejemplo de código deriva un control de servidor ASP.NET de la Label clase y asocia el control de servidor ASP.NET a una implementación del diseñador de controles personalizado. La declaración de clase del diseñador de controles se marca con el SupportsPreviewControl atributo establecido trueen . El diseñador de controles invalida el GetDesignTimeHtml método y incluye el CÓDIGO HTML en tiempo de diseño para el control en etiquetas en cursiva.

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
using System.Reflection;

namespace ControlDesignerSamples.CS
{
    // Define a simple designer associated with a 
    // simple text web control.
    
    // Mark the designer with the SupportsPreviewControlAttribute set
    // to true.  This means the base.UsePreviewControl returns true,
    // and base.ViewControl returns a temporary preview copy of the control.
    [SupportsPreviewControl(true)]
    public class SimpleTextControlDesigner : TextControlDesigner
    {		
        // Override the base GetDesignTimeHtml method to display 
        // the design time text in italics.
        public override string GetDesignTimeHtml()
        {
            string html = String.Empty;
 
            try
            {
                // Initialize the return string to the default
                // design time html of the base TextControlDesigner.
                html = base.GetDesignTimeHtml();

                // Get the ViewControl for the associated control.
                Label ctrl = (Label)ViewControl;

                ctrl.Style.Add(HtmlTextWriterStyle.FontStyle, "Italic");
                html = base.GetDesignTimeHtml();
            }
            catch (System.Exception e)
            {
               if (String.IsNullOrEmpty(html))
               {
                   html = GetErrorDesignTimeHtml(e);
               }
            }
            
            return html;
        }
    }

    // Derive a simple Web control from Label to render a text string.
    // Associate this control with the SimpleTextControlDesigner.
    [DesignerAttribute("ControlDesignerSamples.CS.SimpleTextControlDesigner"),
    ToolboxData("<{0}:MyLabelControl Runat=\"Server\"><{0}:MyLabelControl>")]
    public class MyLabelControl : Label
    {
        // Use the Label control implementation, but associate
        // the derived class with the custom control designer.
    }
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls
Imports System.Reflection

Namespace ControlDesignerSamples.VB

    ' Derive a simple Web control from Label to render a text string.
    ' Associate this control with the SimpleTextControlDesigner.
    <DesignerAttribute("ControlDesignerSamples.CS.SimpleTextControlDesigner"), _
    ToolboxData("<{0}:MyLabelControl Runat=""Server""><{0}:MyLabelControl>")> _
    Public Class MyLabelControl
        Inherits Label

        ' Use the Label control implementation, but associate
        ' the derived class with the custom control designer.
    End Class


    ' Mark the designer with the SupportsPreviewControlAttribute set
    ' to true.  This means the base.UsePreviewControl returns true,
    ' and base.ViewControl returns a temporary preview copy of the control.
    <SupportsPreviewControl(True)> _
    Public Class SimpleTextControlDesigner
        Inherits TextControlDesigner

        ' Override the base GetDesignTimeHtml method to display 
        ' the design time text in italics.
        Public Overrides Function GetDesignTimeHtml() As String
            Dim html As String = String.Empty

            Try
                ' Get the ViewControl for the associated control.
                Dim ctrl As Label = CType(ViewControl, Label)

                ' Set the default text, if necessary
                If ctrl.Text.Length = 0 Then
                    ctrl.Text = "Sample Text"
                End If

                ' Set the style to italic
                ctrl.Style.Add(HtmlTextWriterStyle.FontStyle, "italic")

                ' Let the base class create the HTML markup
                html = MyBase.GetDesignTimeHtml()
            Catch ex As Exception
                If String.IsNullOrEmpty(html) Then
                    ' Display the exception message
                    html = GetErrorDesignTimeHtml(ex)
                End If
            End Try

            Return html
        End Function

    End Class
End Namespace

Comentarios

Aplique el SupportsPreviewControlAttribute atributo a una clase del diseñador de controles para indicar el tipo de control de vista previa admitido por el diseñador de controles. Use este atributo para cambiar un control de vista previa para la representación en tiempo de diseño sin afectar a la instancia persistente real del control asociado.

Normalmente, se especifica al SupportsPreviewControlAttribute declarar una clase de diseñador personalizada derivada de la ControlDesigner clase . El valor de la SupportsPreviewControl propiedad para el SupportsPreviewControlAttribute atributo determina el comportamiento de los UsePreviewControl miembros y ViewControl de la clase base ControlDesigner .

Establezca la SupportsPreviewControl propiedad true en para indicar que el diseñador usa una copia temporal del control asociado para generar el CÓDIGO HTML en tiempo de diseño. Los cambios realizados en el control temporal no se conservan.

Establezca la SupportsPreviewControl propiedad false en para indicar que el diseñador devuelve la instancia de control, específicamente la Component propiedad , del ViewControl método . Los cambios en el objeto de control se conservan.

Por ejemplo, la CalendarDesigner clase se marca con el SupportsPreviewControlAttribute establecido en true. El diseñador usa el control de vista previa con la tarea de formato de estilo automático, que permite al usuario obtener una vista previa de varios estilos de formato automático que se pueden aplicar al calendario. A medida que el usuario selecciona diferentes estilos de formato automático en la interfaz de usuario, el esquema de estilo seleccionado se aplica al control de vista previa. La aplicación de un nuevo estilo al control de vista previa no cambia el esquema que se aplica a la instancia del Calendar control en el diseñador.

SupportsPreviewControlAttribute Si no se especifica en la declaración del diseñador de controles, el ControlDesigner comportamiento equivale a especificar como falseSupportsPreviewControl .

Nota

Las clases del diseñador derivadas de la ControlDesigner clase pueden invalidar los UsePreviewControl miembros y ViewControl y omitir el SupportsPreviewControlAttribute atributo . Para determinar el comportamiento esperado para ViewControl y UsePreviewControl, consulte la documentación de referencia de la clase del diseñador de controles derivados.

Para obtener información general sobre el uso de atributos, vea Información general sobre atributos y Atributos. Para obtener más información sobre los atributos en tiempo de diseño, vea Atributos y Design-Time compatibilidad.

Constructores

SupportsPreviewControlAttribute(Boolean)

Inicializa una instancia nueva de la clase SupportsPreviewControlAttribute y establece el valor inicial de la propiedad SupportsPreviewControl.

Campos

Default

Obtiene una instancia de la clase SupportsPreviewControlAttribute establecida en el valor de vista preliminar predeterminado. Este campo es de solo lectura.

Propiedades

SupportsPreviewControl

Obtiene un valor que indica si el diseñador de controles requiere un control de vista preliminar temporal en tiempo de diseño.

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)

Métodos

Equals(Object)

Determina si el objeto especificado representa la misma configuración de atributo de vista preliminar que la instancia actual de la clase SupportsPreviewControlAttribute.

GetHashCode()

Devuelve el código hash de esta instancia de la clase SupportsPreviewControlAttribute.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Indica si la instancia actual de la clase SupportsPreviewControlAttribute está establecida en el valor del atributo de la vista preliminar predeterminado.

Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

(Heredado de Attribute)

Se aplica a

Consulte también