Windows.UI.Composition API是可以从任何通用Windows平台应用程序调用的声明性保留模式API,从而可以直接在应用程序中创建合成对象动画效果

Composition API在 10586SDK 中就已经出现,但是在年度更新之后,该SDK变得更加完善,也有了更多样性的功能。今天我们就来谈谈如何在基于 Anniversary SDK 的UWP应用中使用Composition API创建DropShadow效果。

1.首先,假如我们想要为一个Ellipse对象创造DropShadow效果,那么第一步,我们需要先创建一个Canvas对象,这个对象位于Ellipse的“背后”,要被Ellipse遮挡住,比如这样:

<Grid>
    <Canvas x:Name="host"/>
    <Ellipse x:Name="target"/></Grid>

2.使用ElementCompositionPreview.GetElementVisual()方法获得Canvas的Visual,然后得到该Visual的Compositor,其中下面代码中的host是我们在XMAL中创建的Canvas:

            Visual hostvisual = ElementCompositionPreview.GetElementVisual(host);
            Compositor compositor = hostvisual.Compositor;