Partilhar via


Classe PropertyOrder

Usado para definir a ordem na qual as propriedades aparecem em uma categoria ou em uma lista de subpropriedades.

Hierarquia de herança

System.Object
  Microsoft.Windows.Design.OrderToken
    Microsoft.Windows.Design.PropertyEditing.PropertyOrder

Namespace:  Microsoft.Windows.Design.PropertyEditing
Assembly:  Microsoft.Windows.Design.Interaction (em Microsoft.Windows.Design.Interaction.dll)

Sintaxe

'Declaração
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

O tipo PropertyOrder expõe os membros a seguir.

Propriedades

  Nome Descrição
Propriedade públicaMembro estático Default Obtém a posição da ordem padrão definido pelo sistema.
Propriedade públicaMembro estático Early Obtém a posição iniciais ordem definida pelo sistema.
Propriedade públicaMembro estático Late Obtém a posição final ordem definida pelo sistema.

Início

Métodos

  Nome Descrição
Método público CompareTo Compara esse token de pedido com o token de ordem especificada. (Herdado de OrderToken.)
Método públicoMembro estático CreateAfter Cria um PropertyOrder objeto que é adicionado após o token especificado.
Método públicoMembro estático CreateBefore Cria um PropertyOrder objeto que é adicionado antes do símbolo especificado.
Método público Equals Determina se o especificado Object é igual a atual Object. (Herdado de OrderToken.)
Método protegido Finalize Permite que um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele é recuperado pela coleta de lixo. (Herdado de Object.)
Método público GetHashCode Serves as a hash function for a particular type. (Herdado de OrderToken.)
Método público GetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegido MemberwiseClone Cria uma cópia superficial do atual Object. (Herdado de Object.)
Método protegido ResolveConflict Chamado pelo padrão CompareTo implementação quando dois OrderToken objetos parecem ser equivalente. (Herdado de OrderToken.)
Método público ToString Retorna um string que representa o objeto atual. (Herdado de Object.)

Início

Comentários

Criar particular PropertyOrder instâncias para agrupar um conjunto específico de propriedades na janela Propriedades.

O PropertyOrder classe controla a ordenação de propriedade, que inclui as propriedades de raiz e subpropriedades. Propriedades de raiz são ordenadas pela primeira vez em categorias, em seguida, em ordem alfabética e, finalmente, por PropertyOrder. Subpropriedades são ordenadas por PropertyOrder e, em seguida, em ordem alfabética.

ObservaçãoObservação

Esse comportamento difere do Windows Forms Designer, que usa o GetProperties método para determinar a ordem das propriedades. Para o WPF Designer, propriedades são classificadas usando o PropertyOrder classe.

Os tokens de ordem padrão são fornecidos pelo PropertyOrder classe. Esses tokens de ordem definida pelo sistema incluem o Early, Default e Late Propriedades. O Early o token de ordem refere-se para uma posição superior na janela Propriedades.

Propriedades sem uma ordem de propriedade específicos são dadas a Default ordem. Você pode derivar dessa classe e criar seus próprios tokens de ordem personalizada, o que garantem a ordem de propriedade e o agrupamento de propriedade.

Exemplos

O exemplo de código a seguir mostra como derivar de PropertyOrder para implementar um

LayoutSizePriorityclasse é usada para o Width e Height Propriedades. Ele é criado após o Early ordem. Portanto, mais tarde, na lista que aparece Early Propriedades. O LayoutAlignmentPriority é usado para o HorizontalAlignment e VerticalAlignment Propriedades e é criado após o LayoutSizePriority.

O PropertyOrder instâncias ligadas às propriedades usando PropertyOrderAttribute. O CreateBefore e CreateAfter a posição de métodos Width antes de Height e HorizontalAlignment antes 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();
        }
    }
}

Acesso thread-safe

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.Windows.Design.PropertyEditing

Outros recursos

Propriedade de edição de arquitetura

Extensibilidade do WPF Designer