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 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
- 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 |
| DispatcherQueue |
Obtém o |
Métodos
| Nome | Description |
|---|---|
| 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 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) | |
| 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) |