PropertyOrder-Klasse
Legt die Reihenfolge fest, in der die Eigenschaften in einer Kategorie oder in einer Liste der Untereigenschaften angezeigt werden.
Vererbungshierarchie
System.Object
Microsoft.Windows.Design.OrderToken
Microsoft.Windows.Design.PropertyEditing.PropertyOrder
Namespace: Microsoft.Windows.Design.PropertyEditing
Assembly: Microsoft.Windows.Design.Interaction (in Microsoft.Windows.Design.Interaction.dll)
Syntax
'Declaration
Public NotInheritable Class PropertyOrder _
Inherits OrderToken
public sealed class PropertyOrder : OrderToken
public ref class PropertyOrder sealed : public OrderToken
[<Sealed>]
type PropertyOrder =
class
inherit OrderToken
end
public final class PropertyOrder extends OrderToken
Der PropertyOrder-Typ macht die folgenden Member verfügbar.
Eigenschaften
Name | Beschreibung | |
---|---|---|
Default | Ruft die systemdefinierte Standardsortierposition ab. | |
Early | Ruft die systemdefinierte vordere Sortierposition ab. | |
Late | Ruft die systemdefinierte hintere Sortierposition ab. |
Zum Seitenanfang
Methoden
Name | Beschreibung | |
---|---|---|
CompareTo | Vergleicht dieses Reihenfolgetoken mit dem angegebenen Reihenfolgetoken. (Von OrderToken geerbt.) | |
CreateAfter | Erstellt ein PropertyOrder-Objekt, das nach dem angegebenen Token hinzugefügt wird. | |
CreateBefore | Erstellt ein PropertyOrder-Objekt, das vor dem angegebenen Token hinzugefügt wird. | |
Equals | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von OrderToken geerbt.) | |
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.) | |
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von OrderToken geerbt.) | |
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) | |
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) | |
ResolveConflict | Wird von der CompareTo-Standardimplementierung aufgerufen, wenn zwei OrderToken-Objekte gleichwertig zu sein scheinen. (Von OrderToken geerbt.) | |
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
Zum Seitenanfang
Hinweise
Erstellen Sie private PropertyOrder-Instanzen, um einen bestimmten Satz von Eigenschaften im Eigenschaftenfenster zusammen zu gruppieren.
Die PropertyOrder-Klasse steuert die Eigenschaftensortierung, die Stammeigenschaften und Untereigenschaften einschließt. Stammeigenschaften werden zuerst in Kategorien sortiert, dann alphabetisch, und schließlich nach PropertyOrder. Untereigenschaften werden nach PropertyOrder und dann alphabetisch sortiert.
Tipp
Dieses Verhalten unterscheidet sich von dem des Windows Forms-Designers, der mithilfe der GetProperties-Methode die Reihenfolge der Eigenschaften bestimmt. Für den WPF-Designer werden Eigenschaften mit der PropertyOrder-Klasse sortiert.
Standard-Sortiertoken werden von der PropertyOrder-Klasse bereitgestellt. Diese systemdefinierten Sortiertoken schließen die Eigenschaften Early, Default und Late ein. Das Early-Sortiertoken verweist auf eine höhere Position im Eigenschaftenfenster.
Eigenschaften ohne eine bestimmte Eigenschaftenreihenfolge wird die Default-Reihenfolge zugewiesen. Sie können von dieser Klasse Ableitungen vornehmen und benutzerdefinierte Sortiertoken erstellen, die die Eigenschaftensortierung und Eigenschaftengruppierung sicherstellen können.
Beispiele
Das folgende Codebeispiel veranschaulicht, wie eine Ableitung von PropertyOrder erstellt wird, um eine
LayoutSizePriority-Klasse zu implementieren, die für die Eigenschaften Width und Height verwendet wird. Die Klasse wird nach der Early-Reihenfolge erstellt. Deshalb wird sie später in der Liste angezeigt als Early-Eigenschaften. Die LayoutAlignmentPriority wird für die Eigenschaften HorizontalAlignment und VerticalAlignment verwendet und nach der LayoutSizePriority erstellt.
Die PropertyOrder-Instanzen werden mit PropertyOrderAttribute an Eigenschaften gebunden. Die CreateBefore-Methode und die CreateAfter-Methode ordnen Width vor Height und HorizontalAlignment vor VerticalAlignment an.
Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports Microsoft.Windows.Design.PropertyEditing
Imports Microsoft.Windows.Design.Metadata
Public Class PropertyOrderTokens
Private Shared layoutSizePriorityValue As PropertyOrder
Private Shared layoutAlignmentPriorityValue As PropertyOrder
Public Shared ReadOnly Property LayoutSizePriority() As PropertyOrder
Get
If layoutSizePriorityValue Is Nothing Then
LayoutSizePriority = PropertyOrder.CreateAfter(PropertyOrder.Early)
End If
Return layoutSizePriorityValue
End Get
End Property
Public Shared ReadOnly Property LayoutAlignmentPriority() As PropertyOrder
Get
If layoutAlignmentPriorityValue Is Nothing Then
layoutAlignmentPriorityValue = PropertyOrder.CreateAfter(PropertyOrderTokens.LayoutSizePriority)
End If
Return layoutAlignmentPriorityValue
End Get
End Property
End Class
' Container for any general design-time metadata to initialize.
' Designers look for a type in the design-time assembly that
' implements IProvideAttributeTable. If found, designers instantiate
' this class and access its AttributeTable property automatically.
Friend Class Metadata
Implements IProvideAttributeTable
' Accessed by the designer to register any design-time metadata.
Public ReadOnly Property AttributeTable() As AttributeTable _
Implements IProvideAttributeTable.AttributeTable
Get
Dim builder As New AttributeTableBuilder()
builder.AddCustomAttributes( _
GetType(Button), _
"HeightProperty", _
New PropertyOrderAttribute( _
PropertyOrder.CreateAfter( _
PropertyOrderTokens.LayoutSizePriority)))
builder.AddCustomAttributes( _
GetType(Button), _
"Width", _
New PropertyOrderAttribute( _
PropertyOrder.CreateBefore( _
PropertyOrderTokens.LayoutSizePriority)))
builder.AddCustomAttributes( _
GetType(Button), _
"VerticalAlignment", _
New PropertyOrderAttribute( _
PropertyOrder.CreateAfter( _
PropertyOrderTokens.LayoutAlignmentPriority)))
builder.AddCustomAttributes( _
GetType(Button), _
"HorizontalAlignment", _
New PropertyOrderAttribute( _
PropertyOrder.CreateBefore( _
PropertyOrderTokens.LayoutAlignmentPriority)))
Return builder.CreateTable()
End Get
End Property
End Class
using System;
using System.Windows;
using System.Windows.Controls;
using Microsoft.Windows.Design.PropertyEditing;
using Microsoft.Windows.Design.Metadata;
public static class PropertyOrderTokens
{
private static PropertyOrder layoutSizePriority;
private static PropertyOrder layoutAlignmentPriority;
public static PropertyOrder LayoutSizePriority
{
get
{
if (layoutSizePriority == null)
{
layoutSizePriority = PropertyOrder.CreateAfter(
PropertyOrder.Early);
}
return layoutSizePriority;
}
}
public static PropertyOrder LayoutAlignmentPriority
{
get
{
if (layoutAlignmentPriority == null)
{
layoutAlignmentPriority = PropertyOrder.CreateAfter(
PropertyOrderTokens.LayoutSizePriority);
}
return layoutAlignmentPriority;
}
}
}
// Container for any general design-time metadata to initialize.
// Designers look for a type in the design-time assembly that
// implements IProvideAttributeTable. If found, designers instantiate
// this class and access its AttributeTable property automatically.
internal class Metadata : IProvideAttributeTable
{
// Accessed by the designer to register any design-time metadata.
public AttributeTable AttributeTable
{
get
{
AttributeTableBuilder builder = new AttributeTableBuilder();
builder.AddCustomAttributes(
typeof(Button),
"Height",
new PropertyOrderAttribute(
PropertyOrder.CreateAfter(
PropertyOrderTokens.LayoutSizePriority)));
builder.AddCustomAttributes(
typeof(Button),
"Width",
new PropertyOrderAttribute(
PropertyOrder.CreateBefore(
PropertyOrderTokens.LayoutSizePriority)));
builder.AddCustomAttributes(
typeof(Button),
"VerticalAlignment",
new PropertyOrderAttribute(
PropertyOrder.CreateAfter(
PropertyOrderTokens.LayoutAlignmentPriority)));
builder.AddCustomAttributes(
typeof(Button),
"HorizontalAlignment",
new PropertyOrderAttribute(
PropertyOrder.CreateBefore(
PropertyOrderTokens.LayoutAlignmentPriority)));
return builder.CreateTable();
}
}
}
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Siehe auch
Referenz
Microsoft.Windows.Design.PropertyEditing-Namespace