DesignerAutoFormatCollection 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.
Rappresenta una raccolta di oggetti DesignerAutoFormat all'interno di una finestra di progettazione controlli. La classe non può essere ereditata.
public ref class DesignerAutoFormatCollection sealed : System::Collections::IList
public sealed class DesignerAutoFormatCollection : System.Collections.IList
type DesignerAutoFormatCollection = class
interface IList
interface ICollection
interface IEnumerable
Public NotInheritable Class DesignerAutoFormatCollection
Implements IList
- Ereditarietà
-
DesignerAutoFormatCollection
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato come implementare la AutoFormats proprietà in una finestra di progettazione controlli personalizzata. Progettazione controlli derivati implementa la AutoFormats proprietà aggiungendo tre istanze di un formato automatico personalizzato derivato dalla DesignerAutoFormat classe .
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
namespace CustomControls.Design.CS
{
// A custom Label control whose contents can be indented
[Designer(typeof(IndentLabelDesigner)),
ToolboxData("<{0}:IndentLabel Runat=\"server\"></{0}:IndentLabel>")]
public class IndentLabel : Label
{
private int _indent = 0;
// Property to indent all text within the label
[Category("Appearance"), DefaultValue(0),
PersistenceMode(PersistenceMode.Attribute)]
public int Indent
{
get { return _indent; }
set
{
_indent = value;
// Get the number of pixels to indent
int ind = value * 8;
// Add the indent style to the control
if (ind > 0)
this.Style.Add(HtmlTextWriterStyle.MarginLeft, ind.ToString() + "px");
else
this.Style.Remove(HtmlTextWriterStyle.MarginLeft);
}
}
}
// A design-time ControlDesigner for the IndentLabel control
[SupportsPreviewControl(true)]
public class IndentLabelDesigner : LabelDesigner
{
private DesignerAutoFormatCollection _autoFormats = null;
// The collection of AutoFormat objects for the IndentLabel object
public override DesignerAutoFormatCollection AutoFormats
{
get
{
if (_autoFormats == null)
{
// Create the collection
_autoFormats = new DesignerAutoFormatCollection();
// Create and add each AutoFormat object
_autoFormats.Add(new IndentLabelAutoFormat("MyClassic"));
_autoFormats.Add(new IndentLabelAutoFormat("MyBright"));
_autoFormats.Add(new IndentLabelAutoFormat("Default"));
}
return _autoFormats;
}
}
// An AutoFormat object for the IndentLabel control
private class IndentLabelAutoFormat : DesignerAutoFormat
{
public IndentLabelAutoFormat(string name) : base(name)
{ }
// Applies styles based on the Name of the AutoFormat
public override void Apply(Control inLabel)
{
if (inLabel is IndentLabel)
{
IndentLabel ctl = (IndentLabel)inLabel;
// Apply formatting according to the Name
if (this.Name == "MyClassic")
{
// For MyClassic, apply style elements directly to the control
ctl.ForeColor = Color.Gray;
ctl.BackColor = Color.LightGray;
ctl.Font.Size = FontUnit.XSmall;
ctl.Font.Name = "Verdana,Geneva,Sans-Serif";
}
else if (this.Name == "MyBright")
{
// For MyBright, apply style elements to the Style property
this.Style.ForeColor = Color.Maroon;
this.Style.BackColor = Color.Yellow;
this.Style.Font.Size = FontUnit.Medium;
// Merge the AutoFormat style with the control's style
ctl.MergeStyle(this.Style);
}
else
{
// For the Default format, apply style elements to the control
ctl.ForeColor = Color.Black;
ctl.BackColor = Color.Empty;
ctl.Font.Size = FontUnit.XSmall;
}
}
}
}
}
}
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls
Namespace CustomControls.Design
' A custom Label control whose contents can be indented
<Designer(GetType(IndentLabelDesigner)), _
ToolboxData("<{0}:IndentLabel Runat=""server""></{0}:IndentLabel>")> _
Public Class IndentLabel
Inherits System.Web.UI.WebControls.Label
Dim _indent As Integer = 0
<Category("Appearance"), DefaultValue(0), _
PersistenceMode(PersistenceMode.Attribute)> _
Property Indent() As Integer
Get
Return _indent
End Get
Set(ByVal Value As Integer)
_indent = Value
' Get the number of pixels to indent
Dim ind As Integer = _indent * 8
' Add the indent style to the control
If ind > 0 Then
Me.Style.Add(HtmlTextWriterStyle.MarginLeft, ind.ToString() & "px")
Else
Me.Style.Remove(HtmlTextWriterStyle.MarginLeft)
End If
End Set
End Property
End Class
' A design-time ControlDesigner for the IndentLabel control
Public Class IndentLabelDesigner
Inherits LabelDesigner
Private _autoFormats As DesignerAutoFormatCollection = Nothing
' The collection of AutoFormat objects for the IndentLabel object
Public Overrides ReadOnly Property AutoFormats() As DesignerAutoFormatCollection
Get
If _autoFormats Is Nothing Then
' Create the collection
_autoFormats = New DesignerAutoFormatCollection()
' Create and add each AutoFormat object
_autoFormats.Add(New IndentLabelAutoFormat("MyClassic"))
_autoFormats.Add(New IndentLabelAutoFormat("MyBright"))
_autoFormats.Add(New IndentLabelAutoFormat("Default"))
End If
Return _autoFormats
End Get
End Property
' An AutoFormat object for the IndentLabel control
Public Class IndentLabelAutoFormat
Inherits DesignerAutoFormat
Public Sub New(ByVal name As String)
MyBase.New(name)
End Sub
' Applies styles based on the Name of the AutoFormat
Public Overrides Sub Apply(ByVal inLabel As Control)
If TypeOf inLabel Is IndentLabel Then
Dim ctl As IndentLabel = CType(inLabel, IndentLabel)
' Apply formatting according to the Name
If Me.Name.Equals("MyClassic") Then
' For MyClassic, apply style elements directly to the control
ctl.ForeColor = Color.Gray
ctl.BackColor = Color.LightGray
ctl.Font.Size = FontUnit.XSmall
ctl.Font.Name = "Verdana,Geneva,Sans-Serif"
ElseIf Me.Name.Equals("MyBright") Then
' For MyBright, apply style elements to the Style object
Me.Style.ForeColor = Color.Maroon
Me.Style.BackColor = Color.Yellow
Me.Style.Font.Size = FontUnit.Medium
' Merge the AutoFormat style with the control's style
ctl.MergeStyle(Me.Style)
Else
' For the Default format, apply style elements to the control
ctl.ForeColor = Color.Black
ctl.BackColor = Color.Empty
ctl.Font.Size = FontUnit.XSmall
End If
End If
End Sub
End Class
End Class
End Namespace
Commenti
La ControlDesigner classe e qualsiasi classe derivata definisce la AutoFormats proprietà come DesignerAutoFormatCollection oggetto . Gli sviluppatori di controlli possono eseguire l'override della AutoFormats proprietà in una finestra di progettazione controlli derivata, aggiungere stili di formattazione automatica personalizzati e restituire la raccolta di formati supportati alla finestra di progettazione visiva.
La raccolta aumenta dinamicamente man mano che vengono aggiunti oggetti. Gli indici in questa raccolta sono in base zero. Utilizzare la Count proprietà per determinare il numero di formati di stile automatici presenti nell'insieme.
Inoltre, usare i DesignerAutoFormatCollection metodi e le proprietà per fornire le funzionalità seguenti:
Metodo Add per aggiungere un singolo formato all'insieme.
Metodo Insert per aggiungere un formato in corrispondenza di un particolare indice all'interno dell'insieme.
Metodo Remove per rimuovere un formato.
Metodo RemoveAt per rimuovere il formato in corrispondenza di un indice specifico.
Metodo Contains per determinare se un formato specifico è già presente nell'insieme.
Metodo IndexOf per recuperare l'indice di un formato all'interno dell'insieme.
Proprietà Item[] da ottenere o impostare il formato in corrispondenza di un indice specifico, utilizzando la notazione della matrice.
Metodo Clear per rimuovere tutti i formati dall'insieme.
Proprietà Count per determinare il numero di formati nell'insieme.
Metodo IndexOf per ottenere la posizione di un formato all'interno dell'insieme.
Costruttori
DesignerAutoFormatCollection() |
Inizializza una nuova istanza della classe DesignerAutoFormatCollection. |
Proprietà
Count |
Ottiene il numero di oggetti DesignerAutoFormat contenuti nell'insieme. |
Item[Int32] |
Ottiene o imposta un oggetto DesignerAutoFormat nella raccolta in corrispondenza dell'indice specificato. |
PreviewSize |
Ottiene le dimensioni esterne massime del controllo, come verrebbe visualizzato in fase di esecuzione. |
SyncRoot |
Ottiene un oggetto che può essere usato per sincronizzare l'accesso all'oggetto DesignerAutoFormatCollection. |
Metodi
Add(DesignerAutoFormat) |
Aggiunge l'oggetto DesignerAutoFormat specificato alla fine dell'insieme. |
Clear() |
Rimuove tutti i formati dalla raccolta. |
Contains(DesignerAutoFormat) |
Determina se il formato specificato è contenuto nella raccolta. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IndexOf(DesignerAutoFormat) |
Restituisce l'indice dell'oggetto DesignerAutoFormat specificato all'interno della raccolta. |
Insert(Int32, DesignerAutoFormat) |
Inserisce un oggetto DesignerAutoFormat nell'insieme, in corrispondenza dell'indice specificato. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Remove(DesignerAutoFormat) |
Rimuove l'oggetto DesignerAutoFormat specificato dalla raccolta. |
RemoveAt(Int32) |
Rimuove l'oggetto DesignerAutoFormat in corrispondenza dell'indice specificato all'interno della raccolta. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
ICollection.CopyTo(Array, Int32) |
Copia gli elementi dell'insieme in un oggetto Array, a partire da un indice Array particolare quando si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia ICollection. |
ICollection.Count |
Ottiene il numero di elementi contenuti nell'insieme quando si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia ICollection. |
ICollection.IsSynchronized |
Ottiene un valore che indica se l'accesso all'insieme è sincronizzato (thread-safe) quando si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia ICollection. |
IEnumerable.GetEnumerator() |
Restituisce un'interfaccia IEnumerator che consente di scorrere l'insieme se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IEnumerable. |
IList.Add(Object) |
Aggiunge un elemento all'insieme se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList. |
IList.Contains(Object) |
Determina se l'insieme contiene un valore specifico se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList. |
IList.IndexOf(Object) |
Determina l'indice di un elemento specifico nell'insieme se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList. |
IList.Insert(Int32, Object) |
Inserisce un elemento nell'insieme in corrispondenza dell'indice specificato se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList. |
IList.IsFixedSize |
Ottiene un valore che indica se l'insieme è di dimensioni fisse quando si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList. |
IList.IsReadOnly |
Per una descrizione di questo metodo, vedere IsReadOnly. |
IList.Item[Int32] |
Ottiene l'elemento in corrispondenza dell'indice specificato quando si esegue il cast dell'oggetto DesignerAutoFormatCollection in un'interfaccia IList. |
IList.Remove(Object) |
Rimuove la prima occorrenza di un oggetto specifico dall'insieme se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList. |
IList.RemoveAt(Int32) |
Rimuove l'elemento in corrispondenza dell'indice specificato se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList. |
Metodi di estensione
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |