Windows Phone 7中的效果(DropShadowEffect)

6

我注意到在Windows Phone 7的Silverlight中缺少Effect属性,于是我进行了一些搜索,显然由于性能原因它被删除了。 我基本上想做这样的事情:

<TextBlock ...>
    <TextBlock.Effect>
        <DropShadowEffect/>
    </TextBlock.Effect>
</TextBlock>

而且

<Image ...>
    <Image.Effect>
        <DropShadowEffect/>
    </Image.Effect>
</Image>

那么,有没有其他方法可以在Windows Phone 7的Silverlight中获得DropShadowEffect效果?并且是否有任何消息表明它将在下一个版本中发布?

谢谢。


1
我怀疑在此之前需要发生以下两件事情之一才能重新实现它(它曾经在CTP中出现过):1)设备需要更加强大;或者2)需要创建一个新的更快速的算法来生成该效果。我不认为这两种情况会很快出现,但如果我错了,我会很高兴的。 - Matt Lacey
2个回答

8
使用图片,您可以在Photoshop/Gimp等软件中创建一个简单的投影,并将其保存为.png格式。
对于TextBlock来说,稍微有点难度。例如,创建一个半透明的带阴影的图像,将TextBlock和Image都放置在Canvas中。更改Canvas.ZIndex="integer"附加属性以按特定顺序放置它们 - 图像必须位于下方。此外,阴影应该是模糊的。
缺点是:
  • 阴影是静态的。
  • 不太适合Metro UX。

你的第一个建议正是我最终采取的做法。实际上,这适用于图像和文本 :) - Fredrik Hedblad
1
我认为阴影在地铁设计中仍然可以很好地工作,就像它们为新的Xbox Live界面所做的那样。 :) - Justin XL

5
<TextBlock ...>
 <TextBlock.RenderTransform>
  <TranslateTransform X="3" Y="3" />
 </TextBlock.RenderTransform>
</TextBlock>

<TextBlock ...>
</TextBlock>

我想要添加阴影效果,这个方法适用于我。你需要在两个文本块中放置相同的内容(除了文本块名称)。X和Y是阴影距离文本的水平和垂直距离。如果需要根据阴影位置使用负数也可以。


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