posts - 114,  comments - 447,  trackbacks - 0
 

这是一个非常有趣的画刷,可以产生视频的蒙板效果,这个画刷在Silverlight中早就有的,但是Windows Phone中却一直没有引入,不过在WP7.1 SDK正式版中这个特性被加入进来了,手机上也可以制做这种效果了。

一.原理

   

这里需要用到MediaElement控件来做为Video 的载体,也就是说由这个控件来播放Video,然后将这个控件做为VideoBrush的源来使用,而VideBrush又以型状控件、容器控件或文字控件的ForegroundBackgroundPath形式加入到这些控件中,从而利用这些控件的形状或内容做为蒙板产生笔刷效果。

注意:在模拟器上无法看到效果,只有用真机才可以。

二.实现

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>

 

由以上效果可以看出,这个笔刷和其他的笔刷使用起来基本上一样,可以用于多种控件上,也可以产生多种蒙板效果。

posted on 2011-10-11 11:26 小镇 阅读(...) 评论(...) 编辑 收藏