XamlLight Clase

Definición

Proporciona una clase base que se usa para crear luces XAML que usan compositionLight para aplicar efectos de iluminación a los elementos y pinceles XAML.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class XamlLight : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class XamlLight : DependencyObject
Public Class XamlLight
Inherits DependencyObject
Herencia
Object IInspectable DependencyObject XamlLight
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 Creators Update (se introdujo en la versión 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v4.0)

Ejemplos

Vea el ejemplo de código en Iluminación.

Comentarios

Puedes usar XamlLight para crear luces personalizadas.

Por ejemplo, se puede usar para crear una luz que aplique una composición SpotLight a los elementos de destino para iluminarlos.

XamlLight proporciona métodos para dirigirse a UIElements o pinceles XAML, aplicar luces a árboles de UIElements y ayudar a administrar la duración de los recursos de CompositionLight en función de si están actualmente en uso.

Los XamlLights personalizados se pueden usar junto con pinceles personalizados derivados de XamlCompositionBrushBase que usan sceneLightingEffect para controlar las propiedades reflectantes de los elementos cuando se iluminan mediante xamlLight.

Objetos de destino

Si tienes como destino un Brush con xamlLight, las partes de cualquier UIElements que usen ese pincel se iluminarán con la luz.

Si tienes como destino un UIElement con xamlLight, todo el UIElement y su UIElements secundario se iluminarán con la luz.

Los destinos se pueden agregar y quitar llamando a métodos en una instancia de XamlLight. XamlLights también puede definir propiedades adjuntas personalizadas para agregar y quitar destinos del marcado.

Administración de recursos

Al crear un XamlLight, normalmente es recomendable retrasar la creación de un CompositionLight y los recursos relacionados hasta que se use la luz. Se llama al método OnConnected cuando se usa xamlLight por primera vez para dirigirse a un elemento o pincel en pantalla, por lo que puedes invalidar OnConnected para crear recursos de forma segura solo cuando sean necesarios.

También es recomendable eliminar los recursos de composición cuando ya no están en uso. Se llama al método OnDisconnected cuando una instancia de XamlLight ya no está en uso en ningún lugar de la pantalla, por lo que puedes invalidar OnDisconnected para eliminar de forma segura los recursos. Si XamlLight se vuelve a usar después de desconectarse, se volverá a llamar a OnConnected .

Advertencia

En Windows 10 Creators Update (SDK 15063), no se puede acceder a CompositionLight después de llamar a Dispose, por lo que establecerlo en NULL después de llamar a Dispose provoca un error. Para solucionar este problema, puede guardar CompositionLight en una variable temporal y llamar a Dispose en ese caso después de establecer CompositionLight en null. var temp = CompostionLight; CompositionLight = null; temp.Dispose(); Este problema se ha corregido en versiones posteriores del SDK. Consulte Aplicaciones adaptables de versión para obtener información sobre cómo dirigirse a diferentes versiones del SDK.

Constructores

XamlLight()

Inicializa una nueva instancia de la clase XamlLight .

Propiedades

CompositionLight

Obtiene o establece la instancia de CompositionLight utilizada para aplicar efectos de iluminación.

Dispatcher

Obtiene el CoreDispatcher al que está asociado este objeto. CoreDispatcher representa una instalación que puede tener acceso a DependencyObject en el subproceso de interfaz de usuario incluso si un subproceso que no es de interfaz de usuario inicia el código.

(Heredado de DependencyObject)

Métodos

AddTargetBrush(String, Brush)

Establece un pincel como destino de xamlLight.

AddTargetElement(String, UIElement)

Establece un UIElement como destino de xamlLight.

ClearValue(DependencyProperty)

Borra el valor local de una propiedad de dependencia.

(Heredado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Devuelve cualquier valor base establecido para una propiedad de dependencia, que se aplicaría en los casos en los que una animación no está activa.

(Heredado de DependencyObject)
GetId()

Devuelve el identificador del tipo XamlLight personalizado.

En la mayoría de los casos, debe usar un identificador único para evitar conflictos. Por ejemplo, puedes usar fullName del tipo XamlLight personalizado.

El identificador se usa para agregar y quitar pinceles y UIElements como destinos para un tipo de luz específico.

GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia de dependencyObject.

(Heredado de DependencyObject)
OnConnected(UIElement)

Se llama automáticamente a este método cuando XamlLight se usa por primera vez en la pantalla, o después de desconectarse previamente y volver a usarse.

Esto proporciona una oportunidad para crear recursos como CompositionLight solo cuando sea necesario.

Se llamará a OnDisconnected cuando XamlLight ya no se use para iluminar los objetos UIElements o Brushes.

OnDisconnected(UIElement)

Este método se llama automáticamente cuando XamlLight ya no está en uso en ningún lugar de la pantalla.

Esto proporciona una oportunidad para eliminar de forma segura recursos como CompositionLight cuando no son necesarios actualmente.

Se llamará a OnConnected de nuevo si XamlLight se usa más adelante para iluminar los objetos UIElements o Brushes después de desconectarse.

ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si se establece un valor local.

(Heredado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una función de notificación para escuchar los cambios en una dependencyProperty específica en esta instancia de DependencyObject .

(Heredado de DependencyObject)
RemoveTargetBrush(String, Brush)

Impide que un pincel sea un destino de XamlLight.

RemoveTargetElement(String, UIElement)

Impide que un UIElement sea un destino de XamlLight.

SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia en dependencyObject.

(Heredado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela una notificación de cambio registrada anteriormente llamando a RegisterPropertyChangedCallback.

(Heredado de DependencyObject)

Se aplica a

Consulte también