AttributeCallbackBuilder (Clase)
Una instancia de esta clase se pasa a los delegados de devolución de llamada para rellenar lentamente los atributos para un tipo.
Jerarquía de herencia
System.Object
Microsoft.Windows.Design.Metadata.AttributeCallbackBuilder
Espacio de nombres: Microsoft.Windows.Design.Metadata
Ensamblado: Microsoft.Windows.Design.Extensibility (en Microsoft.Windows.Design.Extensibility.dll)
Sintaxis
'Declaración
Public NotInheritable Class AttributeCallbackBuilder
public sealed class AttributeCallbackBuilder
public ref class AttributeCallbackBuilder sealed
[<Sealed>]
type AttributeCallbackBuilder = class end
public final class AttributeCallbackBuilder
El tipo AttributeCallbackBuilder expone los siguientes miembros.
Propiedades
Nombre | Descripción | |
---|---|---|
CallbackType | Obtiene el tipo para el que se invoca esta devolución de llamada. |
Arriba
Métodos
Nombre | Descripción | |
---|---|---|
AddCustomAttributes(array<Attribute[]) | Agrega el contenido de los atributos especificados a este generador. | |
AddCustomAttributes(String, array<Attribute[]) | Agrega los atributos al miembro con el nombre especificado. | |
Equals | Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object). | |
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 Object). | |
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). | |
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
Arriba
Comentarios
Utilice el método AttributeCallbackBuilder para rellenar un objeto AttributeTable a petición. Esto es especialmente importante para las tablas de atributos que contienen muchos atributos. Si está especificando sólo unos cuantos atributos para un tipo, use únicamente AttributeTableBuilder.
Con el formato de delegado, no se construye ningún atributo hasta que el diseñador solicita los metadatos para el tipo de destino. AttributeTableBuilder transfiere esta información de devolución de llamada a AttributeTable y la conserva. Por consiguiente, estos delegados de devolución de llamada sólo se invocan a petición. Una vez invocados, AttributeTable almacena sus resultados en memoria caché.
Habilite la creación de atributos a petición con el método AddCallback.
Ejemplos
En el siguiente ejemplo de código se muestra cómo crear y rellenar una tabla de atributos mediante la clase 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();
}
}
}
}
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.Metadata (Espacio de nombres)