在WPF中实现玻璃模糊效果还是比较简单的,主要方式如下:
- 添加一个Rectangle或其它控件作为玻璃放到顶部图层
- 将底部图像作为Brush(大多数的时候用VisualBrush)填充到Rectangle中
- 对该Rectangle添加高斯模糊效果
- 在该Rectangle上叠加一些渐进笔刷实现光照效果
虽然实现起来不是很难,但要实现得比较好看却要下点功夫的,我在网站Aero effect: Blurry transparency in WPF上找到了一个比较完整的例子,效果实现得很不错,并且还支持拖拽。 这个例子我在网盘中也备份了一个:点击下载
这种方式实现简单,效果也还不错,但存在一个问题: 所有的玻璃的背景都是底图,因此无法像操作系那样实现玻璃叠加后的效果。
要解决这个问题就需要每个玻璃加载不同的图层了,这里就不多介绍了。