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(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [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(Microsoft.UI.Xaml.WinUIContract), 65536)]
[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

Ejemplos

Consulte 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 elementos de UI o Brochas XAML, aplicar luces a árboles de elementos de UI y ayudar a administrar la vida útil de los recursos de CompositionLight en función de si están actualmente en uso.

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 Pincel 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 compositionLight y los recursos relacionados hasta que se use la luz. Se llama al método OnConnected cuando se usa por primera vez xamlLight 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 recursos de forma segura. Si XamlLight se usa más tarde después de desconectarse, se volverá a llamar a OnConnected .

Warning

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 produce 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 = CompositionLight; CompositionLight = null; temp.Dispose(); Este problema se ha corregido en versiones posteriores del SDK. Consulte Aplicaciones adaptables de versiones para obtener información sobre cómo dirigirse a diferentes versiones del SDK.

Constructores

Nombre Description
XamlLight()

Inicializa una nueva instancia de la clase XamlLight .

Propiedades

Nombre Description
CompositionLight

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

Dispatcher

Siempre devuelve null en una aplicación de SDK de Aplicaciones para Windows. Use DispatcherQueue en su lugar.

(Heredado de DependencyObject)
DispatcherQueue

Obtiene el objeto DispatcherQueue al que está asociado este objeto. DispatcherQueue representa una instalación que puede acceder al DependencyObject en el subproceso de la interfaz de usuario incluso si el código lo inicia un subproceso que no es de interfaz de usuario.

(Heredado de DependencyObject)

Métodos

Nombre Description
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 primero 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 ningún elemento 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 cualquier 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