DropShadow Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sombra de colocación por spriteVisual o LayerVisual.
public ref class DropShadow sealed : CompositionShadow
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DropShadow final : CompositionShadow
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DropShadow : CompositionShadow
Public NotInheritable Class DropShadow
Inherits CompositionShadow
- Herencia
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 Anniversary Edition (se introdujo en la versión 10.0.14393.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v3.0)
|
Ejemplos
Simple DropShadow
private async void InitComposition()
{
_compositor = ElementCompositionPreview.GetElementVisual(MyGrid).Compositor;
_imageLoader = ImageLoaderFactory.CreateImageLoader(_compositor);
//Create surface brush and load image
CompositionSurfaceBrush surfaceBrush = _compositor.CreateSurfaceBrush();
surfaceBrush.Surface = await _imageLoader.LoadImageFromUriAsync(new Uri("ms-appx:///Assets/cat.jpg"));
//Create sprite visual
SpriteVisual visual = _compositor.CreateSpriteVisual();
visual.Brush = surfaceBrush;
visual.Size = new Vector2(270, 200);
//Create drop shadow
DropShadow shadow = _compositor.CreateDropShadow();
shadow.BlurRadius = 5;
shadow.Offset = new Vector3(15, 15, -10);
shadow.Color = Colors.DarkGray;
//Associate shadow with visual
visual.Shadow = shadow;
}
DropShadow con animaciones
private async void InitComposition()
{
_compositor = ElementCompositionPreview.GetElementVisual(MyGrid).Compositor;
_imageLoader = ImageLoaderFactory.CreateImageLoader(_compositor);
//Create surface brush and load image
CompositionSurfaceBrush surfaceBrush = _compositor.CreateSurfaceBrush();
surfaceBrush.Surface = await _imageLoader.LoadImageFromUriAsync(new Uri("ms-appx:///Assets/cat.jpg"));
//Create sprite visual
SpriteVisual visual = _compositor.CreateSpriteVisual();
visual.Brush = surfaceBrush;
visual.Size = new Vector2(270, 200);
//Create drop shadow
DropShadow shadow = _compositor.CreateDropShadow();
shadow.BlurRadius = 5;
shadow.Offset = new Vector3(15, 15, -10);
shadow.Color = Colors.DarkGray;
//Create animations
ScalarKeyFrameAnimation blurAnimation = this.CreateBlurAnimation();
Vector3KeyFrameAnimation offsetAnimation = this.CreateOffsetAnimation();
//Apply animations
shadow.StartAnimation("BlurRadius", blurAnimation);
shadow.StartAnimation("Offset", offsetAnimation);
//Associate shadow with visual
visual.Shadow = shadow;
}
private ScalarKeyFrameAnimation CreateBlurAnimation()
{
ScalarKeyFrameAnimation shadowBlurAnimation = _compositor.CreateScalarKeyFrameAnimation();
shadowBlurAnimation.InsertKeyFrame(0.0f, 5.0f);
shadowBlurAnimation.InsertKeyFrame(0.5f, 20.0f);
shadowBlurAnimation.InsertKeyFrame(1.0f, 5.0f);
shadowBlurAnimation.Duration = TimeSpan.FromSeconds(2);
shadowBlurAnimation.IterationBehavior = AnimationIterationBehavior.Forever;
return shadowBlurAnimation;
}
private Vector3KeyFrameAnimation CreateOffsetAnimation()
{
Vector3 startOffset = new Vector3(15, 15, -10);
Vector3 endOffset = new Vector3(30, 30, -20);
Vector3KeyFrameAnimation offsetAnimation = _compositor.CreateVector3KeyFrameAnimation();
offsetAnimation.InsertKeyFrame(0.0f, startOffset);
offsetAnimation.InsertKeyFrame(0.5f, endOffset);
offsetAnimation.InsertKeyFrame(1.0f, startOffset);
offsetAnimation.Duration = TimeSpan.FromSeconds(2);
offsetAnimation.IterationBehavior = AnimationIterationBehavior.Forever;
return offsetAnimation;
}
DropShadow mediante CompositionDropShadowSourcePolicy para heredar alfa del pincel del objeto visual
private async void InitComposition()
{
_compositor = ElementCompositionPreview.GetElementVisual(MyGrid).Compositor;
//Create surface brush and load image
CompositionSurfaceBrush surfaceBrush = _compositor.CreateSurfaceBrush();
surfaceBrush.Surface = LoadedImageSurface.StartLoadFromUri(new Uri("ms-appx:///Assets/circle.png"));
//Create sprite visual
SpriteVisual visual = _compositor.CreateSpriteVisual();
visual.Brush = surfaceBrush;
visual.Size = new Vector2(270, 200);
//Create drop shadow
DropShadow shadow = _compositor.CreateDropShadow();
shadow.BlurRadius = 5;
shadow.Offset = new Vector3(15, 15, -10);
shadow.Color = Colors.DarkGray;
//Specify mask policy for shadow
shadow.SourcePolicy = CompositionDropShadowSourcePolicy.InheritFromVisualContent;
//Associate shadow with visual
visual.Shadow = shadow;
}
Comentarios
DropShadows son una manera común de proporcionar una indicación de profundidad en la interfaz de usuario de la aplicación. Para agregar una dropShadow, cree una instancia de DropShadow y adjunte mediante . Propiedad Shadow en un SpriteVisual o LayerVisual.
El clip implícito establecido en el objeto visual no recorta las sombras (según el tamaño del objeto visual). Sin embargo, las sombras respetan el clip explícito establecido en el objeto visual mediante la propiedad SpriteVisual.Clip.
Historial de versiones
Versión de Windows | Versión del SDK | Valor agregado |
---|---|---|
1709 | 16299 | SourcePolicy |
Propiedades
BlurRadius |
Radio del desenfoque gaussiano utilizado para generar la sombra. Animable. |
Color |
Color de la sombra. Animable. |
Comment |
Cadena que se va a asociar con CompositionObject. (Heredado de CompositionObject) |
Compositor |
Compositor usado para crear este CompositionObject. (Heredado de CompositionObject) |
Dispatcher |
Distribuidor del compositionObject. (Heredado de CompositionObject) |
DispatcherQueue |
Obtiene dispatcherQueue para CompostionObject. (Heredado de CompositionObject) |
ImplicitAnimations |
Colección de animaciones implícitas adjuntas a este objeto. (Heredado de CompositionObject) |
Mask |
Pincel usado para especificar una máscara de opacidad para la sombra. El valor predeterminado es el pincel de SpriteVisual. Animable. |
Offset |
Desplazamiento de la sombra en relación con su SpriteVisual. Animable. |
Opacity |
Opacidad de la sombra. Animable. |
Properties |
Colección de propiedades asociadas a CompositionObject. (Heredado de CompositionObject) |
SourcePolicy |
Se usa para definir la directiva de enmascaramiento de sombras que se usará para la sombra. |
Métodos
Close() |
Cierra compositionObject y libera los recursos del sistema. (Heredado de CompositionObject) |
ConnectAnimation(String, CompositionAnimation) |
Conecta y animación. (Heredado de CompositionObject) |
DisconnectAnimation(String) |
Desconecta una animación. (Heredado de CompositionObject) |
Dispose() |
Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. (Heredado de CompositionObject) |
PopulatePropertyInfo(String, AnimationPropertyInfo) |
Define una propiedad que se puede animar. (Heredado de CompositionObject) |
StartAnimation(String, CompositionAnimation) |
Conecta una animación con la propiedad especificada del objeto e inicia la animación. (Heredado de CompositionObject) |
StartAnimation(String, CompositionAnimation, AnimationController) |
Conecta una animación con la propiedad especificada del objeto e inicia la animación. (Heredado de CompositionObject) |
StartAnimationGroup(ICompositionAnimationBase) |
Inicia un grupo de animación. El método StartAnimationGroup en CompositionObject le permite iniciar CompositionAnimationGroup. Todas las animaciones del grupo se iniciarán al mismo tiempo en el objeto . (Heredado de CompositionObject) |
StopAnimation(String) |
Desconecta una animación de la propiedad especificada y detiene la animación. (Heredado de CompositionObject) |
StopAnimationGroup(ICompositionAnimationBase) |
Detiene un grupo de animación. (Heredado de CompositionObject) |
TryGetAnimationController(String) |
Devuelve un AnimationController para la animación que se ejecuta en la propiedad especificada. (Heredado de CompositionObject) |