DropShadow Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ein Schlagschatten, der von einem SpriteVisual - oder LayerVisual-Element gegossen wird.
public ref class DropShadow sealed : CompositionShadow
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.LiftedContract, 65536)]
/// [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.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
class DropShadow final : CompositionShadow
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.LiftedContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DropShadow : CompositionShadow
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
public sealed class DropShadow : CompositionShadow
Public NotInheritable Class DropShadow
Inherits CompositionShadow
- Vererbung
- Attribute
Beispiele
Einfacher 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 mit Animationen
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 mit CompositionDropShadowSourcePolicy zum Erben von Alpha vom Pinsel des visuellen Elements
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;
}
Hinweise
DropShadows sind eine gängige Methode, um eine Anzeige der Tiefe in der Anwendungs-UI bereitzustellen. Um einen DropShadow hinzuzufügen, erstellen Sie eine Instanz von DropShadow, und fügen Sie sie mithilfe der . Shadow-Eigenschaft für ein SpriteVisual - oder LayerVisual-Element.
Schatten werden nicht vom impliziten Clipsatz des visuellen Elements (basierend auf der Größe des visuellen Elements) abgeschnitten. Schatten respektieren jedoch den expliziten Clipsatz für das visuelle Element mithilfe der SpriteVisual.Clip-Eigenschaft.
Eigenschaften
| Name | Beschreibung |
|---|---|
| BlurRadius |
Der Radius des gaussischen Weichzeichners, der zum Generieren des Schattens verwendet wird. Animierbar. |
| Color |
Die Farbe des Schattens. Animierbar. |
| Comment |
Eine Zeichenfolge, die dem CompositionObject zugeordnet werden soll. (Geerbt von CompositionObject) |
| Compositor |
Der Kompositor , der zum Erstellen dieses CompositionObjects verwendet wurde. (Geerbt von CompositionObject) |
| DispatcherQueue |
Ruft den DispatcherQueue für das CompositionObject ab. (Geerbt von CompositionObject) |
| ImplicitAnimations |
Die Auflistung impliziter Animationen, die diesem Objekt zugeordnet sind. (Geerbt von CompositionObject) |
| Mask |
Pinsel, der zum Angeben einer Deckkraftmaske für den Schatten verwendet wird. Standardmäßig wird der Pinsel von SpriteVisual verwendet. Animierbar. |
| Offset |
Offset des Schattens relativ zu seinem SpriteVisual. Animierbar. |
| Opacity |
Die Deckkraft des Schattens. Animierbar. |
| Properties |
Die Auflistung der Eigenschaften, die dem CompositionObject zugeordnet sind. (Geerbt von CompositionObject) |
| SourcePolicy |
Wird verwendet, um die Schattenmaskenrichtlinie zu definieren, die für den Schatten verwendet werden soll. |
Methoden
| Name | Beschreibung |
|---|---|
| Close() |
Schließt das CompositionObject und gibt Systemressourcen frei. (Geerbt von CompositionObject) |
| Dispose() |
Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind. (Geerbt von CompositionObject) |
| PopulatePropertyInfo(String, AnimationPropertyInfo) |
Definiert eine Eigenschaft, die animiert werden kann. (Geerbt von CompositionObject) |
| StartAnimation(String, CompositionAnimation, AnimationController) |
Verbindet eine Animation mit der angegebenen Eigenschaft des Objekts und startet die Animation. (Geerbt von CompositionObject) |
| StartAnimation(String, CompositionAnimation) |
Verbindet eine Animation mit der angegebenen Eigenschaft des Objekts und startet die Animation. (Geerbt von CompositionObject) |
| StartAnimationGroup(ICompositionAnimationBase) |
Startet eine Animationsgruppe. Mit der StartAnimationGroup-Methode auf CompositionObject können Sie CompositionAnimationGroup starten. Alle Animationen in der Gruppe werden gleichzeitig für das Objekt gestartet. (Geerbt von CompositionObject) |
| StopAnimation(String) |
Trennt eine Animation von der angegebenen Eigenschaft und stoppt die Animation. (Geerbt von CompositionObject) |
| StopAnimationGroup(ICompositionAnimationBase) |
Beendet eine Animationsgruppe. (Geerbt von CompositionObject) |
| TryGetAnimationController(String) |
Gibt einen AnimationController für die Animation zurück, die auf der angegebenen Eigenschaft ausgeführt wird. (Geerbt von CompositionObject) |