在UWP中有一个不同的组件来完成这项工作。它被称为Composition API,可在NuGet包“Win2D.uwp”中找到。
基本上你需要得到合成器为您的视觉对象与
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
,并使用合成器创建一个阴影。
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
// create a red sprite visual
var myVisual = _compositor.CreateSpriteVisual();
myVisual.Brush = _compositor.CreateColorBrush(Colors.Red);
myVisual.Size = new System.Numerics.Vector2(100, 100);
// create a blue drop shadow
var shadow = _compositor.CreateDropShadow();
shadow.Offset = new System.Numerics.Vector3(30, 30, 0);
shadow.Color = Colors.Blue;
myVisual.Shadow = shadow;
// render on page
ElementCompositionPreview.SetElementChildVisual(this, myVisual);
不利的一面,这不是非常简单。您可以使用不同的画笔来显示图像,纯色或其他东西,它不适用于屏幕上的现有视觉效果(据我了解)。你可以阅读更多关于基本知识here。 Probalby你需要使用表面刷,它可以容纳各种不同的视觉类型,如图像。目前看起来不存在用于椭圆的现成组件。
或者,存在一个xaml扩展名,它将为您使用纯xaml,might be worth a shot并可能还支持省略号。
作为结束语,所有这些目前都是微软部分正在开展的工作,将来应成为UWP API的本地部分。
快速正确的答案,非常感谢! –