PropertyOrder (Clase)
Se utiliza para establecer el orden en que aparecen las propiedades en una categoría o en una lista de subpropiedades.
Jerarquía de herencia
System.Object
Microsoft.Windows.Design.OrderToken
Microsoft.Windows.Design.PropertyEditing.PropertyOrder
Espacio de nombres: Microsoft.Windows.Design.PropertyEditing
Ensamblado: Microsoft.Windows.Design.Interaction (en Microsoft.Windows.Design.Interaction.dll)
Sintaxis
'Declaración
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
El tipo PropertyOrder expone los siguientes miembros.
Propiedades
Nombre | Descripción | |
---|---|---|
Default | Obtiene la posición de orden predeterminada definida por el sistema. | |
Early | Obtiene la posición de orden anterior definida por el sistema. | |
Late | Obtiene la posición de orden posterior definida por el sistema. |
Arriba
Métodos
Nombre | Descripción | |
---|---|---|
CompareTo | Compara este token de orden con el token de orden especificado. (Se hereda de OrderToken). | |
CreateAfter | Crea un objeto PropertyOrder que se agrega después del token especificado. | |
CreateBefore | Crea un objeto PropertyOrder que se agrega delante del token especificado. | |
Equals | Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de OrderToken). | |
Finalize | Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object). | |
GetHashCode | Actúa como función hash para un tipo concreto. (Se hereda de OrderToken). | |
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). | |
MemberwiseClone | Crea una copia superficial del objeto Object actual. (Se hereda de Object). | |
ResolveConflict | Función a la que llama la implementación CompareTo predeterminada cuando dos objetos OrderToken parecen ser equivalentes. (Se hereda de OrderToken). | |
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
Arriba
Comentarios
Cree instancias privadas de PropertyOrder para agrupar un conjunto determinado de propiedades en la ventana Propiedades.
La clase PropertyOrder controla el orden en que aparecen las propiedades, incluidas las propiedades raíz y las subpropiedades. Las propiedades raíz se ordenan primero en categorías, después alfabéticamente y, finalmente, por PropertyOrder. Las subpropiedades se ordenan por PropertyOrder y después alfabéticamente.
Nota
Este comportamiento difiere del Diseñador de Windows Forms, que utiliza el método GetProperties para determinar el orden de las propiedades. En WPF Designer, las propiedades se ordenan mediante la clase PropertyOrder.
La clase PropertyOrder proporciona los tokens de orden estándar. Estos tokens de orden definidos por el sistema incluyen las propiedades Early, Default y Late. El token de orden Early hace referencia a una posición superior en la ventana Propiedades.
A las propiedades que no tengan un orden concreto se les asigna el orden Default. Puede derivar de esta clase y crear tokens de orden personalizados que garanticen el orden y la agrupación de las propiedades.
Ejemplos
En el ejemplo de código siguiente se muestra cómo derivar de PropertyOrder para implementar
una clase LayoutSizePriority que se utiliza para las propiedades Width y Height. Se crea después del orden Early. Por consiguiente, aparece en la lista después de las propiedades Early. LayoutAlignmentPriority se utiliza para las propiedades HorizontalAlignment y VerticalAlignment y se crea después de LayoutSizePriority.
Las instancias de PropertyOrder se enlazan a las propiedades mediante el atributo PropertyOrderAttribute. Los métodos CreateBefore y CreateAfter colocan Width delante de Height y colocan HorizontalAlignment delante de VerticalAlignment.
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();
}
}
}
Seguridad para subprocesos
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Vea también
Referencia
Microsoft.Windows.Design.PropertyEditing (Espacio de nombres)