wp7.1 VideoBrush
这是一个非常有趣的画刷,可以产生视频的蒙板效果,这个画刷在silverlight中早就有的,但是windows phone中却一直没有引入,不过在wp7.1 sdk正式版中这个特性被加入进来了,手机上也可以制做这种效果了。
一.原理
这里需要用到mediaelement控件来做为video 的载体,也就是说由这个控件来播放video,然后将这个控件做为videobrush的源来使用,而videbrush又以型状控件、容器控件或文字控件的foreground、background、path形式加入到这些控件中,从而利用这些控件的形状或内容做为蒙板产生笔刷效果。
注意:在模拟器上无法看到效果,只有用真机才可以。
二.实现
1.产生文字蒙板效果
<mediaelement x:name="mevideo" ishittestvisible="false" source="wildlife.wmv" autoplay="true"/>
<textblock text="video" fontsize="150" fontweight="bold">
<textblock.foreground>
<videobrush sourcename="mevideo"/>
</textblock.foreground>
</textblock>
2. 形状蒙板效果
<ellipse width="200" height="200" verticalalignment="top">
<ellipse.fill>
<videobrush sourcename="mevideo"/>
</ellipse.fill>
</ellipse>
3. 容器蒙板效果
<stackpanel width="200" height="200">
<stackpanel.background>
<videobrush sourcename="mevideo"/>
</stackpanel.background>
</stackpanel>
4. 按钮控件效果
<button width="300" height="150" content="video">
<button.background>
<videobrush sourcename="mevideo"/>
</button.background>
</button>
5. 按钮控件文字蒙板效果
<button width="300" height="150">
<button.content>
<textblock text="video" fontsize="100" fontweight="bold">
<textblock.foreground>
<videobrush sourcename="mevideo"/>
</textblock.foreground>
</textblock>
</button.content>
</button>
由以上效果可以看出,这个笔刷和其他的笔刷使用起来基本上一样,可以用于多种控件上,也可以产生多种蒙板效果。
作者:360room
下一篇: 程序员50题(JS版本)(六)