AttributeCallbackBuilder, classe
Une instance de cette classe est passée aux délégués de rappel pour remplir progressivement les attributs d'un type.
Hiérarchie d'héritage
System.Object
Microsoft.Windows.Design.Metadata.AttributeCallbackBuilder
Espace de noms : Microsoft.Windows.Design.Metadata
Assembly : Microsoft.Windows.Design.Extensibility (dans Microsoft.Windows.Design.Extensibility.dll)
Syntaxe
'Déclaration
Public NotInheritable Class AttributeCallbackBuilder
public sealed class AttributeCallbackBuilder
public ref class AttributeCallbackBuilder sealed
[<Sealed>]
type AttributeCallbackBuilder = class end
public final class AttributeCallbackBuilder
Le type AttributeCallbackBuilder expose les membres suivants.
Propriétés
Nom | Description | |
---|---|---|
CallbackType | Obtient le type pour lequel ce rappel est appelé. |
Début
Méthodes
Nom | Description | |
---|---|---|
AddCustomAttributes(array<Attribute[]) | Ajoute le contenu des attributs spécifiés à ce générateur. | |
AddCustomAttributes(String, array<Attribute[]) | Ajoute des attributs au membre qui porte le nom spécifié. | |
Equals | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) | |
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) | |
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) | |
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
Début
Notes
Utilisez AttributeCallbackBuilder pour remplir un AttributeTable à la demande. C'est particulièrement important pour les tables d'attributs qui contiennent de nombreux attributs. Si vous ne spécifiez que quelques attributs pour un type, utilisez AttributeTableBuilder par lui-même.
Avec le format de délégué, aucun attribut n'est construit tant que le concepteur n'a pas demandé de métadonnées pour le type de cible. Le AttributeTableBuilder transfère cette information de rappel dans le AttributeTable et la conserve. Par conséquent, ces délégués de rappel sont appelés uniquement à la demande. Une fois appelés, leurs résultats sont mis en cache par le AttributeTable.
Activez la création d'attribut à la demande à l'aide de la méthode AddCallback.
Exemples
L'exemple de code suivant indique comment créer et remplir une table d'attributs à l'aide de la classe AttributeCallbackBuilder.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Reflection;
using System.Windows.Media;
using System.Windows.Controls;
using System.Windows;
using Microsoft.Windows.Design.Features;
using Microsoft.Windows.Design.Metadata;
// The ProvideMetadata assembly-level attribute indicates to designers
// that this assembly contains a class that provides an attribute table.
[assembly: ProvideMetadata(typeof(CustomControlLibrary.VisualStudio.Design.Metadata))]
namespace CustomControlLibrary.VisualStudio.Design
{
// 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();
// Build the attribute table by using the AttributeCallbackBuilder
// class. The attribute table is not populated until the designer
// needs it, which is more efficient for large attribute tables.
builder.AddCallback(
typeof(Button),
delegate(AttributeCallbackBuilder callbackBuilder)
{
callbackBuilder.AddCustomAttributes(
new DefaultPropertyAttribute("Content"));
// Apply the ReadOnlyAttribute to the Background property
// of the Button class.
callbackBuilder.AddCustomAttributes(
"Background",
new ReadOnlyAttribute(true));
});
return builder.CreateTable();
}
}
}
}
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Voir aussi
Référence
Microsoft.Windows.Design.Metadata, espace de noms
Autres ressources
Procédure pas à pas : création d'un ornement au moment du design