XamlLight Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece uma classe base usada para criar luzes XAML que usam um CompositionLight para aplicar efeitos de iluminação a elementos e pincéis 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
- Herança
- Atributos
Exemplos
Consulte o exemplo de código em Iluminação.
Comentários
Você pode usar o XamlLight para criar luzes personalizadas.
Por exemplo, ele pode ser usado para criar uma luz que aplica uma composição SpotLight para direcionar elementos para acendê-los.
O XamlLight fornece métodos para direcionar UIElements ou Pincéis XAML, aplicar luzes a árvores de UIElements e ajudar a gerenciar o tempo de vida dos recursos compositionLight com base em se eles estão atualmente em uso.
XamlLights personalizados podem ser usados em conjunto com pincéis personalizados derivados de XamlCompositionBrushBase que usam um SceneLightingEffect para controlar as propriedades reflexivas dos elementos ao serem iluminados por um XamlLight.
Direcionamento de objetos
Se você tiver um Brush como destino de uma XamlLight, então as partes de quaisquer UIElements que usem esse Brush serão iluminadas.
Se você tiver um UIElement como destino de uma XamlLight, então o UIElement inteiro e seus UIElements filhos serão iluminados.
Os destinos podem ser adicionados e removidos chamando métodos em uma instância do XamlLight. O XamlLights também pode definir propriedades anexadas personalizadas para adicionar e remover destinos da marcação.
Gerenciando recursos
Ao criar um XamlLight, geralmente é uma boa prática atrasar a criação de um CompositionLight e quaisquer recursos relacionados até que a luz esteja sendo usada. O método OnConnected é chamado quando um XamlLight é usado pela primeira vez para direcionar um elemento ou pincel na tela, para que você possa substituir OnConnected para criar recursos com segurança somente quando eles forem necessários.
Também é uma boa prática descartar recursos de composição quando eles não estão mais em uso. O método OnDisconnected é chamado quando uma instância do XamlLight não está mais em uso em nenhum lugar na tela, portanto, você pode substituir OnDisconnected para descartar recursos com segurança. Se o XamlLight for usado novamente depois de ser desconectado, OnConnected será chamado novamente.
Aviso
No Atualização do Windows 10 para Criadores (SDK 15063), CompositionLight não pode ser acessado depois que Dispose é chamado, portanto, defini-lo como nulo depois de chamar Dispose causa um erro. Para contornar esse problema, você pode salvar o CompositionLight em uma variável temporária e chamar Dispose nisso depois de definir CompositionLight como nulo.
var temp = CompositionLight; CompositionLight = null; temp.Dispose();
Esse problema foi corrigido em versões posteriores do SDK. Consulte Aplicativos adaptáveis de versão para obter informações sobre como direcionar diferentes versões do SDK.
Construtores
XamlLight() |
Inicializa uma nova instância da classe XamlLight . |
Propriedades
CompositionLight |
Obtém ou define a instância CompositionLight usada para aplicar efeitos de iluminação. |
Dispatcher |
Sempre retorna |
DispatcherQueue |
Obtém o ao |
Métodos
AddTargetBrush(String, Brush) | |
AddTargetElement(String, UIElement) | |
ClearValue(DependencyProperty) |
Limpa o valor local de uma propriedade de dependência. (Herdado de DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa. (Herdado de DependencyObject) |
GetId() |
Retorna o identificador do tipo XamlLight personalizado. Na maioria dos casos, você deve usar um identificador exclusivo para evitar conflitos. Por exemplo, você pode usar o FullName do seu tipo XamlLight personalizado. O identificador é usado para adicionar e remover Pincéis e UIElements como destinos para um tipo de luz específico. |
GetValue(DependencyProperty) |
Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject. (Herdado de DependencyObject) |
OnConnected(UIElement) |
Esse método é chamado automaticamente quando o XamlLight é usado pela primeira vez na tela ou depois de ser desconectado anteriormente e depois usado novamente. Isso oferece uma oportunidade de criar recursos como o CompositionLight somente quando necessário. OnDisconnected será chamado quando o XamlLight não estiver mais sendo usado para acender UIElements ou Brushes. |
OnDisconnected(UIElement) |
Esse método é chamado automaticamente quando o XamlLight não está mais em uso em nenhum lugar na tela. Isso oferece uma oportunidade de descartar com segurança recursos como o CompositionLight quando eles não são necessários no momento. OnConnected será chamado novamente se o XamlLight for usado posteriormente para acender qualquer UIElements ou Brushes após ser desconectado. |
ReadLocalValue(DependencyProperty) |
Retorna o valor local de uma propriedade de dependência, se um valor local for definido. (Herdado de DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nessa instância dependencyObject . (Herdado de DependencyObject) |
RemoveTargetBrush(String, Brush) | |
RemoveTargetElement(String, UIElement) | |
SetValue(DependencyProperty, Object) |
Define o valor local de uma propriedade de dependência em um DependencyObject. (Herdado de DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback. (Herdado de DependencyObject) |