Compartilhar via


XamlLight Classe

Definição

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
Object IInspectable DependencyObject XamlLight
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 null em um aplicativo SDK do Aplicativo Windows. Em vez disso, use DispatcherQueue .

(Herdado de DependencyObject)
DispatcherQueue

Obtém o ao DispatcherQueue qual este objeto está associado. O DispatcherQueue representa uma instalação que pode acessar o DependencyObject no thread da interface do usuário, mesmo que o código seja iniciado por um thread que não seja da interface do usuário.

(Herdado de DependencyObject)

Métodos

AddTargetBrush(String, Brush)

Define um Brush como um destino de um XamlLight.

AddTargetElement(String, UIElement)

Define um UIElement como um destino de um XamlLight.

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)

Impede que um Brush seja um alvo de um XamlLight.

RemoveTargetElement(String, UIElement)

Impede que um UIElement seja um destino de um XamlLight.

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)

Aplica-se a

Confira também