SupportsPreviewControlAttribute Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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) |