DropShadow Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Bayangan jatuh yang dilemparkan oleh SpriteVisual atau 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
- Warisan
- Atribut
Persyaratan Windows
Rangkaian perangkat |
Windows 10 Anniversary Edition (diperkenalkan dalam 10.0.14393.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v3.0)
|
Contoh
DropShadow Sederhana
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 dengan Animasi
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 menggunakan CompositionDropShadowSourcePolicy untuk mewarisi alfa dari kuas 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;
}
Keterangan
DropShadows adalah cara umum untuk memberikan indikasi kedalaman dalam UI aplikasi. Untuk menambahkan DropShadow, buat instans DropShadow dan lampirkan menggunakan . Properti bayangan pada SpriteVisual atau LayerVisual.
Bayangan tidak dipotong oleh klip implisit yang diatur pada visual (berdasarkan ukuran visual). Namun, bayangan menghormati klip eksplisit yang diatur pada visual menggunakan Properti SpriteVisual.Clip.
Riwayat versi
Versi Windows | Versi SDK | Nilai ditambahkan |
---|---|---|
1709 | 16299 | SourcePolicy |
Properti
BlurRadius |
Radius kabur Gaussian digunakan untuk menghasilkan bayangan. Bisa dianimasikan. |
Color |
Warna bayangan. Bisa dianimasikan. |
Comment |
String yang akan dikaitkan dengan CompositionObject. (Diperoleh dari CompositionObject) |
Compositor |
Compositor digunakan untuk membuat CompositionObject ini. (Diperoleh dari CompositionObject) |
Dispatcher |
Dispatcher untuk CompositionObject. (Diperoleh dari CompositionObject) |
DispatcherQueue |
Mendapatkan DispatcherQueue untuk CompostionObject. (Diperoleh dari CompositionObject) |
ImplicitAnimations |
Kumpulan animasi implisit yang melekat pada obyek ini. (Diperoleh dari CompositionObject) |
Mask |
Kuas digunakan untuk menentukan masker opasitas untuk bayangan. Default ke kuas SpriteVisual. Bisa dianimasikan. |
Offset |
Offset bayangan relatif terhadap SpriteVisual-nya. Bisa dianimasikan. |
Opacity |
Keburaman bayangan. Bisa dianimasikan. |
Properties |
Kumpulan properti yang terkait dengan CompositionObject. (Diperoleh dari CompositionObject) |
SourcePolicy |
Digunakan untuk menentukan kebijakan masking bayangan yang akan digunakan untuk bayangan. |
Metode
Close() |
Menutup CompositionObject dan merilis sumber daya sistem. (Diperoleh dari CompositionObject) |
ConnectAnimation(String, CompositionAnimation) |
Menyambungkan dan animasi. (Diperoleh dari CompositionObject) |
DisconnectAnimation(String) |
Memutuskan sambungan animasi. (Diperoleh dari CompositionObject) |
Dispose() |
Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, merilis, atau mengatur ulang sumber daya yang tidak dikelola. (Diperoleh dari CompositionObject) |
PopulatePropertyInfo(String, AnimationPropertyInfo) |
Menentukan properti yang dapat dianimasikan. (Diperoleh dari CompositionObject) |
StartAnimation(String, CompositionAnimation, AnimationController) |
Menyambungkan animasi dengan properti objek yang ditentukan dan memulai animasi. (Diperoleh dari CompositionObject) |
StartAnimation(String, CompositionAnimation) |
Menyambungkan animasi dengan properti objek yang ditentukan dan memulai animasi. (Diperoleh dari CompositionObject) |
StartAnimationGroup(ICompositionAnimationBase) |
Memulai grup animasi. Metode StartAnimationGroup pada CompositionObject memungkinkan Anda memulai CompositionAnimationGroup. Semua animasi dalam grup akan dimulai pada saat yang sama pada objek. (Diperoleh dari CompositionObject) |
StopAnimation(String) |
Memutuskan sambungan animasi dari properti yang ditentukan dan menghentikan animasi. (Diperoleh dari CompositionObject) |
StopAnimationGroup(ICompositionAnimationBase) |
Menghentikan grup animasi. (Diperoleh dari CompositionObject) |
TryGetAnimationController(String) |
Mengembalikan AnimationController untuk animasi yang berjalan pada properti yang ditentukan. (Diperoleh dari CompositionObject) |