Partilhar via


SupportsPreviewControlAttribute Classe

Definição

Indica se um designer de controle requer uma instância de versão prévia do controle em tempo de design. Essa classe não pode ser herdada.

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
Herança
SupportsPreviewControlAttribute
Atributos

Exemplos

O exemplo de código a seguir demonstra como marcar um designer de controle com o SupportsPreviewControlAttribute atributo. O exemplo de código deriva um controle de servidor ASP.NET da Label classe e associa o controle de servidor ASP.NET a uma implementação personalizada do designer de controle. A declaração de classe do designer de controle é marcada com o SupportsPreviewControl atributo definido como true. O designer de controle substitui o GetDesignTimeHtml método e inclui o HTML de tempo de design para o controle em marcas itálicas.

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

Comentários

Aplique o SupportsPreviewControlAttribute atributo a uma classe de designer de controle para indicar o tipo de controle de visualização compatível com o designer de controle. Use esse atributo para alterar um controle de visualização para renderização em tempo de design sem afetar a instância persistente real do controle associado.

Normalmente, você especifica ao SupportsPreviewControlAttribute declarar uma classe de designer personalizada derivada da ControlDesigner classe. O valor da SupportsPreviewControl propriedade para o SupportsPreviewControlAttribute atributo determina o comportamento dos membros e ViewControl da UsePreviewControl classe baseControlDesigner.

Defina a SupportsPreviewControl propriedade para true indicar que o designer usa uma cópia temporária do controle associado para gerar o HTML de tempo de design. As alterações no controle temporário não são persistentes.

Defina a SupportsPreviewControl propriedade para false indicar que o designer retorna a instância de controle, especificamente a Component propriedade, do ViewControl método. As alterações no objeto de controle são persistentes.

Por exemplo, a CalendarDesigner classe é marcada com o SupportsPreviewControlAttribute conjunto como true. O designer usa o controle de visualização com a tarefa de formatação de estilo automático, que permite ao usuário visualizar vários estilos de formatação automática que podem ser aplicados ao calendário. À medida que o usuário seleciona diferentes estilos de formatação automática na interface do usuário, o esquema de estilo selecionado é aplicado ao controle de visualização. A aplicação de um novo estilo ao controle de visualização não altera o esquema aplicado à instância do Calendar controle no designer.

Se o SupportsPreviewControlAttribute valor não for especificado na declaração do designer de controle, o ControlDesigner comportamento será equivalente a especificar como SupportsPreviewControl false.

Observação

As classes de designer derivadas da ControlDesigner classe podem substituir e os ViewControl UsePreviewControl membros e ignorar o SupportsPreviewControlAttribute atributo. Para determinar o comportamento esperado para ViewControl e UsePreviewControl, consulte a documentação de referência para a classe de designer de controle derivada.

Para obter informações gerais sobre como usar atributos, consulte Visão geral e atributos de atributos. Para obter mais informações sobre atributos de tempo de design, consulte Atributos e suporte Design-Time.

Construtores

SupportsPreviewControlAttribute(Boolean)

Inicializa uma nova instância da classe SupportsPreviewControlAttribute e define o valor inicial da propriedade SupportsPreviewControl.

Campos

Default

Obtém uma instância da classe SupportsPreviewControlAttribute definida como o valor de versão prévia padrão. Este campo é somente leitura.

Propriedades

SupportsPreviewControl

Obtém um valor que indica se o designer de controle requer um controle de versão prévia temporário em tempo de design.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.

(Herdado de Attribute)

Métodos

Equals(Object)

Determina se o objeto especificado representa a mesma configuração de atributo de versão prévia que a instância atual da classe SupportsPreviewControlAttribute.

GetHashCode()

Retorna o código hash para esta instância da classe SupportsPreviewControlAttribute.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Indica se a instância atual da classe SupportsPreviewControlAttribute é definida como o valor padrão do atributo de versão prévia.

Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

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

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

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

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Confira também