Sdílet prostřednictvím


PropertyOrder – třída

Lze nastavit pořadí vlastností v kategorii nebo v seznamu sub-properties.

Hierarchie dědičnosti

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

Obor názvů:  Microsoft.Windows.Design.PropertyEditing
Sestavení:  Microsoft.Windows.Design.Interaction (v Microsoft.Windows.Design.Interaction.dll)

Syntaxe

'Deklarace
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

Typ PropertyOrder zveřejňuje následující členy.

Vlastnosti

  Název Popis
Veřejná vlastnostStatický člen Default Získá pořadí systémem definované výchozí polohy.
Veřejná vlastnostStatický člen Early Získává pozici definované systémem včasné objednávky.
Veřejná vlastnostStatický člen Late Získává pozici definované systémem pozdní objednávky.

Na začátek

Metody

  Název Popis
Veřejná metoda CompareTo Porovná tento token objednávky s tokenem určeném pořadí. (Zděděno z OrderToken.)
Veřejná metodaStatický člen CreateAfter Vytvoří PropertyOrder objekt, který vkládá zadaný token.
Veřejná metodaStatický člen CreateBefore Vytvoří PropertyOrder objektu přidaná před zadaný token.
Veřejná metoda Equals Určuje, zda zadaná Object se rovná aktuální Object. (Zděděno z OrderToken.)
Chráněná metoda Finalize Umožňuje zkuste uvolnit prostředky a provádět další operace vyčištění před je převzaty systémem pro uvolnění objektu. (Zděděno z Object.)
Veřejná metoda GetHashCode Slouží jako funkce hash určitého typu. (Zděděno z OrderToken.)
Veřejná metoda GetType Získává Type aktuální instance. (Zděděno z Object.)
Chráněná metoda MemberwiseClone Vytvoří kopii aktuální Object. (Zděděno z Object.)
Chráněná metoda ResolveConflict Nazývá výchozí CompareTo provádění při dvou OrderToken objektů se jeví jako rovnocenné. (Zděděno z OrderToken.)
Veřejná metoda ToString Vrátí řetězec, který představuje aktuální objekt. (Zděděno z Object.)

Na začátek

Poznámky

Vytvoření soukromé PropertyOrder instance seskupit sadu vlastností v okně Vlastnosti.

PropertyOrder Třídy řídí vlastnost objednávání, což zahrnuje vlastnosti kořenové a sub-properties. Kořenové vlastnosti jsou seřazeny nejprve do kategorií, pak abecedně a nakonec podle PropertyOrder. Sub-Properties jsou seřazeny podle PropertyOrder a pak abecedně.

Poznámka

Toto chování se liší od model Windows Forms Designer, který používá GetProperties Metoda k určení pořadí vlastnosti. Pro Návrhář WPF, pomocí vlastnosti řazení PropertyOrder Třída

Standardní pořadí tokeny jsou k dispozici PropertyOrder Třída Zahrnout tyto tokeny systému definovaném pořadí Early, Default a Late Vlastnosti. Early Token pořadí odkazuje na vyšší pozici v okně Vlastnosti.

Vlastnosti bez určité vlastnosti zakázky jsou uvedeny Default objednávky. Lze odvodit z této třídy a vytvořit vlastní vlastní pořadí tokeny, které lze zaručit pořadí vlastností a vlastností seskupení.

Příklady

Následující příklad kódu ukazuje, jak lze odvodit z PropertyOrder implementovat

LayoutSizePrioritypro třídy Width a Height Vlastnosti. Je vytvořena po Early objednávky. Proto se zdá později v seznamu než Early Vlastnosti. LayoutAlignmentPriority Se používá pro HorizontalAlignment a VerticalAlignment Vlastnosti a je vytvořena po LayoutSizePriority.

PropertyOrder Instance jsou vázány na vlastnosti pomocí PropertyOrderAttribute. CreateBefore a CreateAfter metody pozice Width před Height a HorizontalAlignment před 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();
        }
    }
}

Zabezpečení podprocesu

Všechny veřejné členy static (Shared v jazyce Visual Basic) tohoto typu jsou zabezpečeny pro používání podprocesů. Zabezpečení sdílených členů pro používání podprocesů není zaručeno.

Viz také

Odkaz

Microsoft.Windows.Design.PropertyEditing – obor názvů

Další zdroje

Property Editing Architecture

WPF Designer Extensibility