SupportsPreviewControlAttribute Classe

Definição

Indica se um designer de controlos necessita de uma instância de pré-visualização do controlo no momento do projeto. Esta 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 seguinte demonstra como marcar um designer de controlo com o SupportsPreviewControlAttribute atributo. O exemplo de código deriva um controlo ASP.NET servidor a partir da classe Label e associa o controlo ASP.NET servidor a uma implementação personalizada de designer de controlo. A declaração de classe do designer de controlo é marcada com o SupportsPreviewControl atributo definido como true. O designer do controlo sobrepõe o GetDesignTimeHtml método e inclui o HTML em tempo de design para o controlo em itálico.

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

Observações

Aplique o SupportsPreviewControlAttribute atributo a uma classe de designer de controlos para indicar o tipo de controlo de pré-visualização suportado pelo designer de controlos. Use este atributo para alterar um controlo de pré-visualização para a renderização em tempo de projeto sem afetar a instância real persistente do controlo associado.

Normalmente, especificas o SupportsPreviewControlAttribute ao declarar uma classe designer personalizada que deriva dessa ControlDesigner classe. O valor da SupportsPreviewControl propriedade para o SupportsPreviewControlAttribute atributo determina o comportamento dos UsePreviewControl membros e ViewControl na classe base ControlDesigner .

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

Defina a SupportsPreviewControl propriedade para false indicar que o designer devolve a instância de controlo, especificamente a Component propriedade, do ViewControl método. As alterações ao objeto de controlo mantêm-se.

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

Se o SupportsPreviewControlAttribute não for especificado na declaração do designer de controlo, o ControlDesigner comportamento é equivalente a especificar o SupportsPreviewControl como false.

Note

As classes designer derivadas da ControlDesigner classe podem sobrepor os UsePreviewControl membros e ViewControl 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 controlo derivada.

Para informações gerais sobre a utilização de atributos, consulte Visão Geral e Atributos de Atributos. Para mais informações sobre atributos de tempo de design, consulte Atributos e Suporte Design-Time.

Construtores

Name Description
SupportsPreviewControlAttribute(Boolean)

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

Campos

Name Description
Default

Obtém uma instância da SupportsPreviewControlAttribute classe que está definida para o valor de pré-visualização predefinido. Este campo é só de leitura.

Propriedades

Name Description
SupportsPreviewControl

Recebe um valor que indica se o designer de controlo necessita de um controlo de pré-visualização temporária no momento do projeto.

TypeId

Quando implementado numa classe derivada, obtém um identificador único para esta Attribute.

(Herdado de Attribute)

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado representa a mesma definição de atributo de pré-visualização que a instância atual da SupportsPreviewControlAttribute classe.

GetHashCode()

Devolve o código hash desta instância da SupportsPreviewControlAttribute classe.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Indica se a instância atual da SupportsPreviewControlAttribute classe está definida para o valor padrão do atributo de pré-visualização.

Match(Object)

Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

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

Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

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

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

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

(Herdado de Attribute)

Aplica-se a

Ver também