XamlLight Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 seleccionar uiElements o pinceles XAML, aplicar luces a árboles de UIElements y ayudar a administrar la duración de los recursos compositionLight en función de si están actualmente en uso.
XamlLights personalizado se puede usar junto con pinceles personalizados derivados de XamlCompositionBrushBase que usan sceneLightingEffect para controlar las propiedades reflectantes de los elementos cuando un XamlLight ilumina.
Objetos de destino
Si el destino es Brush con xamlLight, las partes de cualquier ELEMENTO UIElements que usen ese pincel se iluminarán con la luz.
Si tienes como destino un UIElement con xamlLight, todo el UIElement y sus UIElements secundarios 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 una clase 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 tener como destino 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 ninguna parte de la pantalla, por lo que puedes invalidar OnDisconnected para eliminar de forma segura los recursos. Si XamlLight se vuelve a usar más tarde 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 produce un error. Para solucionar este problema, puede guardar CompositionLight en una variable temporal y llamar a Dispose 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 Versiones de aplicaciones adaptables para obtener información sobre cómo tener como destino 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 |
Siempre devuelve |
DispatcherQueue |
Obtiene el objeto |
Métodos
AddTargetBrush(String, Brush) | |
AddTargetElement(String, UIElement) | |
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 luego se usa de nuevo. 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 elementos UIElements o brushes. |
OnDisconnected(UIElement) |
Se llama automáticamente a este método cuando XamlLight ya no está en uso en ningún lugar de la pantalla. Esto proporciona una oportunidad para eliminar de forma segura los recursos, como CompositionLight, cuando no son necesarios actualmente. Se volverá a llamar a OnConnected si xamlLight se usa más adelante para iluminar los elementos 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) | |
RemoveTargetElement(String, UIElement) | |
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 mediante una llamada a RegisterPropertyChangedCallback. (Heredado de DependencyObject) |