DesignerAutoFormatCollection Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Auflistung von DesignerAutoFormat-Objekten in einem Steuerelement-Designer dar. Diese Klasse kann nicht vererbt werden.
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
- Vererbung
-
DesignerAutoFormatCollection
- Implementiert
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die AutoFormats -Eigenschaft in einem benutzerdefinierten Steuerelement-Designer implementiert wird. Der Designer für abgeleitete Steuerelemente implementiert die AutoFormats -Eigenschaft, indem drei Instanzen eines benutzerdefinierten automatischen Formats hinzugefügt werden, die von der DesignerAutoFormat -Klasse abgeleitet werden.
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
Hinweise
Die ControlDesigner -Klasse und jede abgeleitete Klasse definieren die AutoFormats -Eigenschaft als - DesignerAutoFormatCollection Objekt. Steuerelemententwickler können die AutoFormats -Eigenschaft in einem abgeleiteten Steuerelement-Designer überschreiben, benutzerdefinierte automatische Formatierungsstile hinzufügen und die Auflistung der unterstützten Formate an den visuellen Designer zurückgeben.
Die Auflistung wird dynamisch erhöht, wenn Objekte hinzugefügt werden. Indizes in dieser Auflistung sind nullbasiert. Verwenden Sie die Count -Eigenschaft, um zu bestimmen, wie viele automatische Formatvorlagenformate in der Auflistung enthalten sind.
Verwenden Sie außerdem die DesignerAutoFormatCollection Methoden und Eigenschaften, um die folgenden Funktionen bereitzustellen:
Die Add Methode zum Hinzufügen eines einzelnen Formats zur Auflistung.
Die Insert Methode zum Hinzufügen eines Formats an einem bestimmten Index innerhalb der Auflistung.
Die Remove Methode zum Entfernen eines Formats.
Die RemoveAt Methode zum Entfernen des Formats an einem bestimmten Index.
Die Contains Methode, um zu bestimmen, ob ein bestimmtes Format bereits in der Auflistung enthalten ist.
Die IndexOf Methode zum Abrufen des Indexes eines Formats innerhalb der Auflistung.
Die Item[] Eigenschaft, die das Format für einen bestimmten Index mithilfe der Arraynotation abrufen oder festlegen soll.
Die Clear -Methode zum Entfernen aller Formate aus der Auflistung.
Die Count -Eigenschaft, um die Anzahl der Formate in der Auflistung zu bestimmen.
Die IndexOf Methode zum Abrufen der Position eines Formats innerhalb der Auflistung.
Konstruktoren
DesignerAutoFormatCollection() |
Initialisiert eine neue Instanz der DesignerAutoFormatCollection-Klasse. |
Eigenschaften
Count |
Ruft die Anzahl der DesignerAutoFormat-Objekte in der Auflistung ab. |
Item[Int32] |
Ruft ein DesignerAutoFormat-Objekt am angegebenen Index in der Auflistung ab oder legt dieses fest. |
PreviewSize |
Ruft die maximalen äußeren Abmessungen des Steuerelements ab, mit denen dieses zur Laufzeit angezeigt wird. |
SyncRoot |
Ruft ein Objekt ab, mit dem der Zugriff auf das DesignerAutoFormatCollection-Objekt synchronisiert werden kann. |
Methoden
Add(DesignerAutoFormat) |
Fügt das angegebene DesignerAutoFormat-Objekt am Ende der Auflistung hinzu. |
Clear() |
Entfernt alle Formate aus der Auflistung. |
Contains(DesignerAutoFormat) |
Bestimmt, ob das angegebene Format in der Auflistung enthalten ist. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
IndexOf(DesignerAutoFormat) |
Gibt den Index des angegebenen DesignerAutoFormat-Objekts in der Auflistung zurück. |
Insert(Int32, DesignerAutoFormat) |
Fügt ein DesignerAutoFormat-Objekt am angegebenen Index in die Auflistung ein. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
Remove(DesignerAutoFormat) |
Entfernt das angegebene DesignerAutoFormat-Objekt aus der Auflistung. |
RemoveAt(Int32) |
Entfernt das DesignerAutoFormat-Objekt am angegebenen Index der Auflistung. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
ICollection.CopyTo(Array, Int32) |
Kopiert die Elemente der Auflistung in ein Array-Objekt, beginnend bei einem bestimmten Array-Index, wenn das DesignerAutoFormatCollection-Objekt in eine ICollection-Schnittstelle umgewandelt wird. |
ICollection.Count |
Ruft die Anzahl von Elementen ab, die in der Auflistung enthalten sind, wenn das DesignerAutoFormatCollection-Objekt in eine ICollection-Schnittstelle umgewandelt wird. |
ICollection.IsSynchronized |
Ruft einen Wert ab, der angibt, ob der Zugriff auf die Auflistung synchronisiert (threadsicher) ist, wenn das DesignerAutoFormatCollection-Objekt in eine ICollection-Schnittstelle umgewandelt wird. |
IEnumerable.GetEnumerator() |
Gibt eine IEnumerator-Schnittstelle zurück, die die Auflistung durchläuft, wenn das DesignerAutoFormatCollection-Objekt in eine IEnumerable-Schnittstelle umgewandelt wird. |
IList.Add(Object) |
Fügt der Auflistung ein Element hinzu, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird. |
IList.Contains(Object) |
Bestimmt, ob die Auflistung einen bestimmten Wert enthält, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird. |
IList.IndexOf(Object) |
Ermittelt den Index eines bestimmten Elements in der Auflistung, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird. |
IList.Insert(Int32, Object) |
Fügt ein Element am angegebenen Index in der Auflistung ein, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird. |
IList.IsFixedSize |
Ruft einen Wert ab, der angibt, ob die Auflistung über eine feste Größe verfügt, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird. |
IList.IsReadOnly |
Eine Beschreibung dieser Methode finden Sie unter IsReadOnly. |
IList.Item[Int32] |
Ruft das Element vom angegebenen Index ab, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird. |
IList.Remove(Object) |
Entfernt das erste Vorkommen eines bestimmten Objekts aus der Auflistung, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird. |
IList.RemoveAt(Int32) |
Entfernt das Element am angegebenen Index, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird. |
Erweiterungsmethoden
Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um |
OfType<TResult>(IEnumerable) |
Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs |
AsParallel(IEnumerable) |
Ermöglicht die Parallelisierung einer Abfrage. |
AsQueryable(IEnumerable) |
Konvertiert einen IEnumerable in einen IQueryable. |