【问题标题】:Drop shadow effect in Windows Phone 8.1 Runtime?Windows Phone 8.1 运行时中的投影效果?
【发布时间】:2014-08-19 11:37:58
【问题描述】:

我正在寻找一种将Drop Shadow Effect 添加到我的Windows Phone 8.1 Runtime(不是Silverlight!)应用程序中的多种元素的方法。主要问题是......没有官方的API。主要问题是我不仅需要对基本形状(如矩形或线条)模仿这种效果,还需要对路径进行模仿,如下所示:

图片是借用这个问题的:path-with-broken-shadow-effect - 希望楼主不要介意 ;) 现在,他已经实现了这个效果,因为它是在WPF中完成的。我正在开发一个通用应用程序(所以 WinRT),并且没有效果扩展。

我在网上搜索了很多次,找到了一些解决方法,但它们都遗漏了一些东西。比如这个:

http://www.silverlightshow.net/items/Simple-Xaml-Drop-Shadows-in-Silverlight-2.aspx Canvas 上工作,内容必须是Grid

您知道如何在 Windows Phone 8.1 运行时中实现伪造投影效果的令人满意的结果吗?

【问题讨论】:

  • 显示的示例也可以在Grid 中使用,或者为什么不能使用Grid
  • 因为目前我想出了一个解决方案,使用Grid 作为内容的根(具有透明背景),然后在Grid 内部放置Path模仿那个形状(我需要几乎相同的形状,不知道怎么称呼它)。我不知道如何模仿上面提出的Path 对象的解决方案。而且,我不使用圆形,没有它看起来会更糟。

标签: c# xaml windows-runtime windows-phone-8.1 dropshadow


【解决方案1】:

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>

【讨论】:

  • 好主意!谢谢,确实好看多了。我永远不会自己想出这个。好的,这适用于简单的元素,例如 BorderGrid。但是Path 呢?我应该只将 1 作为主要的(带有背景颜色),其余的透明并只使用 Stroke/Opacity/ScaleTransform 值吗?我现在遇到的问题是我的形状不是原始的(它是一个底部有小三角形“胶合”的矩形,与主题中的形状非常相似)。编辑:好的,我看到你已经设置了 RenderTransformOrigin。遗憾的是,对于我上面描述的形状来说,这还不够。
  • 您必须复制路径,如我的示例所示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多