棒棒牛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2436|回复: 5

[解决] 关于WPF4 OuterGlowBitmapEffect 的问题 [复制链接]

V1

Rank: 1

游币
100
金币
21
经验
34
积分
44
帖子
14
发表于 2010-9-1 16:07:38 |显示全部楼层
用WPF4,发现 OuterGlowBitmapEffect 没有效果了,去网上找了下,才知道OuterGlowBitmapEffect 已经不能用了,只有 DropShadowEffect 和 BlurEffect。尝试用DropShadowEffect 和 BlurEffect 去做 OuterGlowBitmapEffect 的效果,但是总觉得没有原来 OuterGlowBitmapEffect 的感觉好,各位帮帮忙,有什么办法吗?

版主

WPF_1.5_ray

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

游币
259
金币
543
经验
1690
积分
2175
帖子
428

2011 年度优秀版主 2010 年度优秀版主

发表于 2010-9-1 17:22:06 |显示全部楼层
上网搜索 WPF Effects,有开源的特效库
比如:http://wpffx.codeplex.com/
What is real?

V1

Rank: 1

游币
100
金币
21
经验
34
积分
44
帖子
14
发表于 2010-9-1 21:03:59 |显示全部楼层
回复 2# Ray


    全英文的....开源的话,那我去看看,谢谢啦

V1

Rank: 1

游币
100
金币
21
经验
34
积分
44
帖子
14
发表于 2010-9-3 15:25:09 |显示全部楼层
问题解决了,拿出来和大家分享一下。
先看下效果图
1.jpg

左边这个,是原来在3.5下用OuterGlowBitmapEffect 做出来的效果
右边这个,是在4.0下通过用Microsoft.Expression.Effects.dll来实现,具体方法如下:
1.首先引用Microsoft.Expression.Effects.dll;
2.在XMAL下添加如下引用:
  1. xmlns:ee="http://schemas.microsoft.com/expression/2010/effects"
复制代码
3.实现代码示例如下:
  1. <Grid >
  2.         <Grid x:Name="LayoutRoot" Background="Black" Margin="0,0,0,176">

  3.             <Grid.Effect>
  4.                 <!--BloomEffect在Blend上的介绍是,使明亮部分更明亮-->
  5.                 <ee:BloomEffect BloomIntensity="2.1" BaseSaturation="1" BaseIntensity="1" BloomSaturation="2" Threshold="0"/>
  6.             </Grid.Effect>

  7.             <TextBlock Margin="155,10,0,0" TextWrapping="Wrap" FontSize="15" Text="TextBlock" HorizontalAlignment="Left" Width="114" Foreground="#FDF7E200"  FontWeight="Bold" Height="31" VerticalAlignment="Top">
  8.                         <TextBlock.Effect>
  9.                                 <BlurEffect Radius="13"/>
  10.                         </TextBlock.Effect>
  11.             </TextBlock>
  12.         </Grid>
  13.         <TextBlock Margin="155,10,0,0" TextWrapping="Wrap" FontSize="15" Text="TextBlock" HorizontalAlignment="Left" Width="114" Foreground="#EDFFFFFF" FontWeight="Bold" Height="29" VerticalAlignment="Top" />
  14.         
  15.         
  16.     </Grid>
复制代码
思路是用模糊效果做背景,但是只使用模糊效果的话颜色会很淡,效果不太理想,所以想到了加深颜色,最初比较天真的用几个TextBlock模糊叠加起来,后来发现非常耗费资源,显示速度也很慢,正准备放弃的时候,在Blend上看到一个使明亮区更明亮的方法,就试了一下,效果还行,放上来给大家看看,也许会给大家一些启发,想出更好的办法
2

查看全部评分

版主

WPF_1.5_ray

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

游币
259
金币
543
经验
1690
积分
2175
帖子
428

2011 年度优秀版主 2010 年度优秀版主

发表于 2010-9-6 13:26:34 |显示全部楼层
哈哈,非常不错
What is real?

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

游币
263
金币
396
经验
1785
积分
2556
帖子
688
发表于 2010-9-6 13:47:09 |显示全部楼层
谢谢分享:)
与您一起成长
您需要登录后才可以回帖 登录 | 注册

bbniu.com (湘ICP备06008909号)  

GMT+8, 2012-2-6 10:09

Copyright © 2009-2011 bbniu.com. All Rights Reserved.

回顶部