是否可以在winRT中创建简单的UI效果,例如阴影?

时间:2012-06-27 18:48:15

标签: winrt-xaml

我对.net一般来说是一个菜鸟,在我的第一个都市风格的应用程序上工作,无法找到一种方法来为我的一些UI元素添加一个简单的阴影。我听说可能无法使用winRT做这样简单的UI效果,并且想知道这些谣言是否属实。如果是这样,有没有人可以解决这个问题呢?

4 个答案:

答案 0 :(得分:2)

如果您在xaml中构建Metro应用程序,则没有内置的位图效果(如投影,模糊,发光和反射)。您可以创建投影的位图图像并将其用作9 grid,但这仅适用于某些情况。

如果你使用html + css + js,你可以使用CSS3位图效果在一个盒子上创建一个投影。

答案 1 :(得分:2)

这是一个创建4像素宽阴影的解决方案,从Silverlight中的ChildWindow默认模板复制 -

<Grid>
    <Border BorderBrush="#14000000" BorderThickness="1" Background="#14000000" CornerRadius="2" Margin="1,1,-1,-1"/>
    <Border BorderBrush="#0F000000" BorderThickness="1" Background="#0F000000" CornerRadius="2.25" Margin="2,2,-2,-2"/>
    <Border BorderBrush="#0C000000" BorderThickness="1" Background="#0C000000" CornerRadius="2.5" Margin="3,3,-3,-3"/>
    <Border BorderBrush="#0A000000" BorderThickness="1" Background="#0A000000" CornerRadius="2.75"  Margin="4,4,-4,-4" />
    <Border BorderBrush="Black" BorderThickness="1" Background="#FFFFFFFF" CornerRadius="2">
        ...Actual content...
    </Border>
</Grid>

答案 2 :(得分:0)

对于XAML Metro / Modern应用程序, this XAML drop shadow sample works perfectly

答案 3 :(得分:0)

BCL不支持阴影,但支持win2d(https://github.com/Microsoft/win2d)。

您可以使用win2d的CanvasControl或根据win2d https://github.com/brookshi/XPShadow

尝试此库