我已经在一个简单的TextBlock控件上应用了阴影效果,但我有一个问题:阴影在TextBlock之前,而我不知道如何将阴影放在Textblock后面。你有解决这个问题的办法吗?下面是创建DropShadow效果的代码:
public void SetupSimpleTextShadow(TextBlock shadowTarget)
{
Visual hostVisual = ElementCompositionPreview.GetElementVisual(shadowTarget);
Compositor compositor = hostVisual.Compositor;
DropShadow dropShadow = compositor.CreateDropShadow();
dropShadow.Color = Color.FromArgb(255, 50, 50, 50);
dropShadow.BlurRadius = 7f;
dropShadow.Offset = new Vector3(5f, 5f, 0f);
dropShadow.Opacity = 0.9f;
dropShadow.Mask = shadowTarget.GetAlphaMask();
SpriteVisual shadowVisual = compositor.CreateSpriteVisual();
shadowVisual.Shadow = dropShadow;
ElementCompositionPreview.SetElementChildVisual(shadowTarget, shadowVisual);
ExpressionAnimation bindSizeAnimation = compositor.CreateExpressionAnimation("hostVisual.Size");
bindSizeAnimation.SetReferenceParameter("hostVisual", hostVisual);
shadowVisual.StartAnimation("Size", bindSizeAnimation);
}发布于 2016-11-02 11:06:34
尝试使用XPShadow.The示例链接为https://github.com/brookshi/XPShadow。
在Nuget中找到XPShadow并下载它。
编写引用NameSpace :xmlns:xp="using:XP"
在您希望控件具有阴影的代码中,您可以使用xp:Shadow中的控件。
<xp:Shadow CornerRadius="2"
IsCached="True"
Z_Depth="2">
<Control/>
</xp:Shadow>https://stackoverflow.com/questions/40369443
复制相似问题