Compartilhar via


ThemeShadow Classe

Definição

Um ThemeShadow é um efeito de sombra pré-configurado que pode ser aplicado a qualquer elemento XAML para desenhar sombras adequadamente com base nas coordenadas x, y e z. O ThemeShadow também se ajusta automaticamente a outras especificações ambientais:

  • Adapta-se a alterações na iluminação, tema do usuário, ambiente do aplicativo e shell.
  • Elementos shadows automaticamente com base em sua elevação.
  • Mantém os elementos sincronizados conforme eles se movem e mudam de elevação.
  • Mantém as sombras consistentes em todos os aplicativos e entre eles.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 524288)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ThemeShadow : Shadow
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 524288)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class ThemeShadow : Shadow
Public Class ThemeShadow
Inherits Shadow
Herança
Object IInspectable DependencyObject Shadow ThemeShadow
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10, version 1903 (introduzida na 10.0.18362.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v8.0)

Exemplos

Dica

Para obter mais informações, diretrizes de design e exemplos de código, consulte Profundidade Z e sombra.

Muitos controles comuns convertem sombras automaticamente usando ThemeShadow.

Se você tiver o aplicativo WinUI 2 Gallery instalado e atender aos requisitos mínimos de versão do Windows 10 acima, clique aqui para abrir o aplicativo e consulte ThemeShadow em ação em controles comuns.

Comentários

Dica

Para obter mais informações, diretrizes de design e exemplos de código, consulte Profundidade Z e sombra.

Um ThemeShadow pode ser aplicado a qualquer elemento XAML para desenhar sombras com base nas coordenadas relativas x, y e z entre um UIElement do rodízio conceitual e um ou mais UIElements receptor que têm a sombra do rodízio renderizada neles.

ThemeShadow dá suporte apenas a sombras retangulares. Para efeitos de sombra personalizados, você pode usar um DropShadow.

ThemeShadows em pop-ups

O ThemeShadow lança sombras automaticamente quando aplicado a qualquer elemento XAML em uma Pop-up. Ele projetará sombras no conteúdo em segundo plano do aplicativo por trás dele e em qualquer outra pop-up aberta abaixo dele.

Para usar ThemeShadow com pop-ups, use a propriedade UIElement.Shadow para aplicar um ThemeShadow a um elemento XAML. Em seguida, eleve o elemento de outros elementos por trás dele, por exemplo, usando o componente z da propriedade UIElement.Translation . Para a maioria das interfaces do usuário pop-up, a elevação padrão recomendada relativa ao conteúdo em segundo plano do aplicativo é de 32 pixels efetivos.

ThemeShadow em outros elementos

Para converter uma sombra de um elemento XAML que não está em um pop-up, você deve especificar explicitamente os outros elementos que podem receber a sombra na coleção ThemeShadow.Receivers . Os receptores não podem ser ancestrais do projetor na árvore visual.

Práticas recomendadas de desempenho para ThemeShadow

  1. Limite o número de elementos receptores personalizados ao mínimo necessário.

  2. Se vários elementos receptores estiverem na mesma elevação, tente combiná-los direcionando um único elemento pai.

  3. Se vários elementos projetarem o mesmo tipo de sombra nos mesmos elementos receptores, adicione a sombra como um recurso compartilhado e reutilize-a.

Construtores

ThemeShadow()

Inicializa uma nova instância da classe ThemeShadow .

Propriedades

Dispatcher

Obtém o CoreDispatcher ao qual esse objeto está associado. O CoreDispatcher representa uma instalação que pode acessar 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)
Receivers

Obtém uma coleção de elementos de interface do usuário em que este ThemeShadow é convertido.

Métodos

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)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject.

(Herdado de DependencyObject)
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 nesta instância dependencyObject .

(Herdado de DependencyObject)
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