ThemeShadow Clase

Definición

ThemeShadow es un efecto de sombra preconfigurado que se puede aplicar a cualquier elemento XAML para dibujar sombras adecuadamente basadas en coordenadas x, y, z. ThemeShadow también se ajusta automáticamente a otras especificaciones del entorno:

  • Se adapta a los cambios en la iluminación, el tema del usuario, el entorno de la aplicación y el shell.
  • Los elementos Shadows se basan automáticamente en su elevación.
  • Mantiene los elementos sincronizados mientras se mueven y cambian la elevación.
  • Mantiene las sombras coherentes en todas las aplicaciones.
/// [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
Herencia
Object IInspectable DependencyObject Shadow ThemeShadow
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10, version 1903 (se introdujo en la versión 10.0.18362.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v8.0)

Ejemplos

Sugerencia

Para obtener más información, instrucciones de diseño y ejemplos de código, consulte Profundidad Z y sombra.

Muchos controles comunes convierten automáticamente sombras mediante ThemeShadow.

Si tienes instalada la aplicación Galería de WinUI 2 y cumples los requisitos mínimos de la versión de Windows 10 anteriores, haz clic aquí para abrir la aplicación y consulta ThemeShadow en acción en controles comunes.

Comentarios

Sugerencia

Para obtener más información, instrucciones de diseño y ejemplos de código, consulte Profundidad Z y sombra.

Un ThemeShadow se puede aplicar a cualquier elemento XAML para dibujar sombras basadas en las coordenadas relativas x, y y z entre un UIElement de caster conceptual y uno o varios UIElements receptores que tienen la sombra del caster representada en ellos.

ThemeShadow solo admite sombras rectangulares. En el caso de los efectos de sombra personalizados, puede usar dropShadow.

ThemeShadows en elementos emergentes

ThemeShadow proyecta sombras automáticamente cuando se aplica a cualquier elemento XAML en un control Popup. Proyecta sombras sobre el contenido de fondo de la aplicación situado detrás, y sobre cualquier otro elemento emergente abierto que haya debajo.

Para usar ThemeShadow con Elementos emergentes, usa la propiedad UIElement.Shadow para aplicar un ThemeShadow a un elemento XAML. A continuación, eleva el elemento de otros elementos detrás de él, por ejemplo mediante el componente z de la propiedad UIElement.Translation . En la mayoría de los elementos emergentes de interfaz de usuario, la elevación predeterminada recomendada en relación con el contenido en segundo plano de la aplicación es de 32 píxeles efectivos.

ThemeShadow en otros elementos

Para convertir una sombra desde un elemento XAML que no está en un elemento Popup, debes especificar explícitamente los demás elementos que pueden recibir la sombra en la colección ThemeShadow.Receivers . Los receptores no pueden ser antecesores del proyector en el árbol visual.

Procedimientos recomendados para mejorar el rendimiento de ThemeShadow

  1. Limita el número de elementos receptores personalizados al mínimo necesario.

  2. Si varios elementos receptores están en la misma elevación, intente combinarlos seleccionando un único elemento primario en su lugar.

  3. Si varios elementos van a proyectar el mismo tipo de sombra en los mismos elementos receptores, agrega la sombra como recurso compartido y vuelve a usarla.

Constructores

ThemeShadow()

Inicializa una nueva instancia de la clase ThemeShadow .

Propiedades

Dispatcher

Obtiene el CoreDispatcher al que está asociado este objeto. CoreDispatcher representa una instalación que puede tener acceso a DependencyObject en el subproceso de interfaz de usuario incluso si un subproceso que no es de interfaz de usuario inicia el código.

(Heredado de DependencyObject)
Receivers

Obtiene una colección de elementos de interfaz de usuario en los que se convierte este ThemeShadow.

Métodos

ClearValue(DependencyProperty)

Borra el valor local de una propiedad de dependencia.

(Heredado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Devuelve cualquier valor base establecido para una propiedad de dependencia, que se aplicaría en los casos en los que una animación no está activa.

(Heredado de DependencyObject)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia de dependencyObject.

(Heredado de DependencyObject)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si se establece un valor local.

(Heredado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una función de notificación para escuchar los cambios en una dependencyProperty específica en esta instancia de DependencyObject .

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia en dependencyObject.

(Heredado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela una notificación de cambio registrada anteriormente llamando a RegisterPropertyChangedCallback.

(Heredado de DependencyObject)

Se aplica a

Consulte también