因此,我想在Canvas上渲染各种形状,想想PowerPoint。用户可以在画布上剪裁形状。
我现在想将DropShadow添加到Shape中。
仅,我不知道如何实际执行此操作。社区工具包似乎不允许在Code-Behind中添加下拉阴影(至少没有文档)。在网上找到的其他几种解决方案似乎采用了与UWP不兼容或不建议使用的方式...
有帮助吗?
DropShadow类提供了一种创建可配置阴影的方法,该阴影可应用于SpriteVisual或LayerVisual(Visuals的子树)。您可以尝试使用它为形状添加阴影。首先创建一个新的DropShadow并将其关联到您的视觉效果。例如:
Compositor compositor = ElementCompositionPreview.GetElementVisual(YourShape).Compositor;
var shadowVisual = compositor.CreateSpriteVisual();
Vector2 newSize = new Vector2(0, 0);
if (YourShape is FrameworkElement element)
{
newSize = new Vector2((float)element.ActualWidth, (float)element.ActualHeight);
}
shadowVisual.Size = newSize;
var dropShadow = compositor.CreateDropShadow();
dropShadow.BlurRadius = 10;
dropShadow.Opacity = 0.3f;
dropShadow.Offset = new Vector3(10,10,10);
dropShadow.Color = Windows.UI.Colors.Black;
shadowVisual.Shadow = dropShadow;
ElementCompositionPreview.SetElementChildVisual(YourShape, shadowVisual);
有关DropShadow的更多详细信息,您可以参考此document。