Windows Phone 8.1 Runtime中的投影效果?

3
我正在寻找一种方法,可以在我的Windows Phone 8.1 Runtime应用程序的多种元素中添加投影效果(非Silverlight!)。主要问题是...没有官方API可供使用。主要问题是我不仅需要在基本形状(如矩形或线条)上模仿此效果,还需要在路径上实现,例如:

Taken from question /4519243/path-with-broken-shadow-effect

这篇文章的图片来自于这个问题:path-with-broken-shadow-effect - 希望作者不介意;他实现了这种效果是因为使用了WPF。我正在开发一个通用应用(WinRT),但没有Effects扩展程序。
我已经在网上搜索过多次,找到了一些解决方法,但它们都有缺陷。例如这个:http://www.silverlightshow.net/items/Simple-Xaml-Drop-Shadows-in-Silverlight-2.aspx <- 我不能在Canvas上工作,内容必须是Grid
你有什么想法如何在Windows Phone 8.1 Runtime中模拟投影效果并取得令人满意的结果吗?

这个示例也可以在Grid中工作,或者为什么不能用Grid来做呢? - thumbmunkeys
因为目前我想到的解决方案是使用Grid作为内容的根(具有透明背景),然后在Grid内部放置模仿该形状的Path(我需要几乎相同的形状,不知道如何称呼它)。 我不知道如何将上述解决方案模拟到Path对象中。而且,我不使用圆形形状,没有它看起来更糟糕。 - Malutek
1个回答

11

应用RenderTransform到阴影形状。将比例设置得更大:

<Grid Style="{StaticResource LayoutRootStyle}" Background="#FF803535" >             
        <Rectangle Width="100" Height="100" Opacity="0.3" RenderTransformOrigin="0,0" StrokeThickness="16" StrokeDashCap="Round" StrokeEndLineCap="Round" StrokeLineJoin="Round" StrokeStartLineCap="Round" Stroke="Black"  >
            <Rectangle.RenderTransform>
                <CompositeTransform ScaleX="1.07" ScaleY="1.07"  />
            </Rectangle.RenderTransform>
        </Rectangle>
        <Rectangle Width="100" Height="100" Fill="Blue"></Rectangle>
    </Grid>

好主意!谢谢,看起来确实更好。我自己想不出来。好的,这对于像“Border”或“Grid”这样的简单元素是可以的。但是“Path”呢?我应该只制作一个主要的(带有背景颜色),其余的透明并且只玩Stroke/Opacity/ScaleTransform值吗? 我现在遇到的问题是我的形状不是基本形状(它是一个带有小三角形“粘”在底部的矩形,非常类似于主题中的形状)。编辑: 好的,我看到你已经设置了RenderTransformOrigin。不幸的是,对于我上面描述的形状还不够。 - Malutek
你必须复制路径,就像我的示例一样。 - thumbmunkeys

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接