Windows.UI.Composition API是可以從任何通用Windows平臺應(yīng)用程序調(diào)用的聲明性保留模式API,從而可以直接在應(yīng)用程序中創(chuàng)建合成對象動畫效果。

Composition API在 10586SDK 中就已經(jīng)出現(xiàn),但是在年度更新之后,該SDK變得更加完善,也有了更多樣性的功能。今天我們就來談?wù)勅绾卧诨?Anniversary SDK 的UWP應(yīng)用中使用Composition API創(chuàng)建DropShadow效果。

1.首先,假如我們想要為一個Ellipse對象創(chuàng)造DropShadow效果,那么第一步,我們需要先創(chuàng)建一個Canvas對象,這個對象位于Ellipse的“背后”,要被Ellipse遮擋住,比如這樣:

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

2.使用ElementCompositionPreview.GetElementVisual()方法獲得Canvas的Visual,然后得到該Visual的Compositor,其中下面代碼中的host是我們在XMAL中創(chuàng)建的Canvas:

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