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 XAML e pincéis.

/// [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

Veja 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 a elementos de destino para acessá-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 em uso no momento.

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ê direcionar um Pincel com um XamlLight, as partes de qualquer UIElements usando esse Pincel serão iluminadas pela luz.

Se você direcionar um UIElement com um XamlLight, todo o UIElement e seu UIElements filho serão todos acesos pela luz.

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 qualquer lugar na tela, para que você possa substituir OnDisconnected para descartar recursos com segurança. Se o XamlLight for usado mais tarde após ser desconectado, o OnConnected será chamado novamente.

Warning

Em Windows 10 Atualização de 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 depois de definir CompositionLight como nulo. var temp = CompositionLight; CompositionLight = null; temp.Dispose(); Esse problema é 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

Nome Description
XamlLight()

Inicializa uma nova instância da classe XamlLight .

Propriedades

Nome Description
CompositionLight

Obtém ou define a instância CompositionLight usada para aplicar efeitos de iluminação.

Dispatcher

Sempre retorna null em um aplicativo do SDK de Aplicativo do Windows. Em vez disso , use DispatcherQueue .

(Herdado de DependencyObject)
DispatcherQueue

Obtém o DispatcherQueue que este objeto está associado. Representa DispatcherQueue uma instalação que pode acessar o DependencyObject thread da interface do usuário mesmo se o código for iniciado por um thread que não seja da interface do usuário.

(Herdado de DependencyObject)

Métodos

Nome Description
AddTargetBrush(String, Brush)

Define um Pincel 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 em 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 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 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 nenhum UIElements ou Brushes.

OnDisconnected(UIElement)

Esse método é chamado automaticamente quando o XamlLight não está mais em uso em qualquer lugar na tela.

Isso oferece uma oportunidade para 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 um DependencyProperty específico nesta instância dependencyObject .

(Herdado de DependencyObject)
RemoveTargetBrush(String, Brush)

Impede que um Pincel seja um alvo de um XamlLight.

RemoveTargetElement(String, UIElement)

Impede que um UIElement seja um alvo 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