Condividi tramite


DropShadow Classe

Definizione

Un'ombreggiatura a discesa eseguita da uno 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
Ereditarietà
Object Platform::Object IInspectable CompositionObject CompositionShadow DropShadow
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 Anniversary Edition (è stato introdotto in 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v3.0)

Esempio

DropShadow semplice

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 animazioni

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 usando CompositionDropShadowSourcePolicy per ereditare alpha dal pennello dell'oggetto visivo

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;
}         

Commenti

DropShadows è un modo comune per fornire un'indicazione di profondità nell'interfaccia utente dell'applicazione. Per aggiungere dropShadow, creare un'istanza di DropShadow e collegarla usando . Proprietà Shadow in uno SpriteVisual o LayerVisual.

Le ombreggiature non vengono ritagliate dal set di clip implicito nell'oggetto visivo (in base alle dimensioni dell'oggetto visivo). Tuttavia, le ombreggiature rispettano il set di clip esplicito nell'oggetto visivo usando la proprietà SpriteVisual.Clip.

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1709 16299 SourcePolicy

Proprietà

BlurRadius

Raggio della sfocatura gaussiana usata per generare l'ombreggiatura. Animatable.

Color

Colore dell'ombreggiatura. Animatable.

Comment

Stringa da associare a CompositionObject.

(Ereditato da CompositionObject)
Compositor

Compositor utilizzato per creare questo CompositionObject.

(Ereditato da CompositionObject)
Dispatcher

Dispatcher per CompositionObject.

(Ereditato da CompositionObject)
DispatcherQueue

Ottiene dispatcherQueue per CompostionObject.

(Ereditato da CompositionObject)
ImplicitAnimations

Raccolta di animazioni implicite associate a questo oggetto.

(Ereditato da CompositionObject)
Mask

Pennello utilizzato per specificare una maschera di opacità per l'ombreggiatura. Il valore predefinito è il pennello spriteVisual. Animatable.

Offset

Offset dell'ombreggiatura rispetto al relativo spriteVisual. Animatable.

Opacity

Opacità dell'ombreggiatura. Animatable.

Properties

Raccolta di proprietà associate a CompositionObject.

(Ereditato da CompositionObject)
SourcePolicy

Consente di definire i criteri di maschera shadow da usare per l'ombreggiatura.

Metodi

Close()

Chiude CompositionObject e rilascia le risorse di sistema.

(Ereditato da CompositionObject)
ConnectAnimation(String, CompositionAnimation)

Connette e animazione.

(Ereditato da CompositionObject)
DisconnectAnimation(String)

Disconnette un'animazione.

(Ereditato da CompositionObject)
Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

(Ereditato da CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Definisce una proprietà che può essere animata.

(Ereditato da CompositionObject)
StartAnimation(String, CompositionAnimation)

Connette un'animazione con la proprietà specificata dell'oggetto e avvia l'animazione.

(Ereditato da CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Connette un'animazione con la proprietà specificata dell'oggetto e avvia l'animazione.

(Ereditato da CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Avvia un gruppo di animazioni.

Il metodo StartAnimationGroup in CompositionObject consente di avviare CompositionAnimationGroup. Tutte le animazioni nel gruppo verranno avviate contemporaneamente sull'oggetto .

(Ereditato da CompositionObject)
StopAnimation(String)

Disconnette un'animazione dalla proprietà specificata e arresta l'animazione.

(Ereditato da CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Arresta un gruppo di animazioni.

(Ereditato da CompositionObject)
TryGetAnimationController(String)

Restituisce un oggetto AnimationController per l'animazione in esecuzione sulla proprietà specificata.

(Ereditato da CompositionObject)

Si applica a

Vedi anche