SupportsPreviewControlAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Indica se per la finestra di progettazione del controllo è necessaria un'istanza di anteprima del controllo in fase di progettazione. La classe non può essere ereditata.
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato come contrassegnare una finestra di progettazione controlli con l'attributo SupportsPreviewControlAttribute . L'esempio di codice deriva un controllo server ASP.NET dalla Label classe e associa il controllo server ASP.NET a un'implementazione della finestra di progettazione dei controlli personalizzata. La dichiarazione della classe della finestra di progettazione controlli è contrassegnata con l'attributo SupportsPreviewControl
impostato su true
. La finestra di progettazione controlli esegue l'override del GetDesignTimeHtml metodo e racchiude il codice HTML in fase di progettazione per il controllo nei tag corsivi.
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
Commenti
Applicare l'attributo SupportsPreviewControlAttribute a una classe di progettazione controlli per indicare il tipo di controllo di anteprima supportato dalla finestra di progettazione controlli. Usare questo attributo per modificare un controllo di anteprima per il rendering in fase di progettazione senza influire sull'istanza permanente effettiva del controllo associato.
In genere, si specifica quando SupportsPreviewControlAttribute si dichiara una classe di progettazione personalizzata derivata dalla ControlDesigner classe . Il valore della proprietà per l'attributo SupportsPreviewControl SupportsPreviewControlAttribute determina il comportamento per i UsePreviewControl membri e ViewControl nella classe base ControlDesigner .
Impostare la SupportsPreviewControl proprietà su true
per indicare che la finestra di progettazione usa una copia temporanea del controllo associato per generare il codice HTML in fase di progettazione. Le modifiche apportate al controllo temporaneo non vengono mantenute.
Impostare la SupportsPreviewControl proprietà su false
per indicare che la finestra di progettazione restituisce l'istanza del controllo, in particolare la Component proprietà, dal ViewControl metodo . Le modifiche apportate all'oggetto controllo vengono mantenute.
Ad esempio, la CalendarDesigner classe è contrassegnata con il SupportsPreviewControlAttribute set su true
. La finestra di progettazione usa il controllo di anteprima con l'attività di formattazione automatica dello stile, che consente all'utente di visualizzare in anteprima vari stili di formattazione automatica che possono essere applicati al calendario. Quando l'utente seleziona diversi stili di formattazione automatica nell'interfaccia utente, lo schema di stile selezionato viene applicato al controllo di anteprima. L'applicazione di un nuovo stile al controllo di anteprima non modifica lo schema applicato all'istanza del controllo nella finestra di Calendar progettazione.
Se non SupportsPreviewControlAttribute è specificato nella dichiarazione della finestra di progettazione controlli, il ControlDesigner comportamento equivale a specificare l'oggetto SupportsPreviewControl come false
.
Nota
Le classi di progettazione derivate dalla ControlDesigner classe possono eseguire l'override dei UsePreviewControl membri e ViewControl e ignorare l'attributo SupportsPreviewControlAttribute . Per determinare il comportamento previsto per ViewControl e UsePreviewControl, vedere la documentazione di riferimento per la classe di progettazione del controllo derivata.
Per informazioni generali sull'uso degli attributi, vedere Panoramica degli attributi e attributi. Per altre informazioni sugli attributi in fase di progettazione, vedere Attributi e Design-Time Supporto.
Costruttori
SupportsPreviewControlAttribute(Boolean) |
Inizializza una nuova istanza della classe SupportsPreviewControlAttribute e imposta il valore iniziale della proprietà SupportsPreviewControl. |
Campi
Default |
Ottiene un'istanza della classe SupportsPreviewControlAttribute impostata sul valore di anteprima predefinito. Questo campo è di sola lettura. |
Proprietà
SupportsPreviewControl |
Ottiene il valore che indica se per la finestra di progettazione del controllo è necessario un controllo di anteprima temporaneo in fase di progettazione. |
TypeId |
Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute) |
Metodi
Equals(Object) |
Determina se l'oggetto specificato rappresenta la stessa impostazione dell'attributo di anteprima dell'istanza corrente della classe SupportsPreviewControlAttribute. |
GetHashCode() |
Viene restituito il codice hash per questa istanza della classe SupportsPreviewControlAttribute. |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IsDefaultAttribute() |
Indica se l'istanza corrente della classe SupportsPreviewControlAttribute è impostata sul valore predefinito dell'attributo di anteprima. |
Match(Object) |
Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute) |