2011-06-28 53 views
1

我有一个WPF窗口。我想添加模糊效果。即当我说Show()Close()它应该模糊到视野和模糊的视野。如何通过模糊效果显示/隐藏WPF窗口

我试着用Effect = new BlurEffect(),但我相信这是当Windows可见

编辑: 我想通了,我实际上可以控制透明度,所以我决定淡出窗口。

回答

1

以下为我工作。

 var _sb = new Storyboard(); 
     var da = new DoubleAnimation(0.0, 1.0, new Duration(time)) {AutoReverse = false}; 
     Storyboard.SetTargetProperty(da, new PropertyPath(OpacityProperty)); 
     _sb.Children.Clear(); 
     _sb.Children.Add(da); 
     this.Opacity = 0; 
     Show(); 
     _sb.Begin(this); 
0

据我所知,您无法模糊整个窗口(窗口被定义为Chrome窗口元素),您可以模糊窗口内的任何UI元素。

您可以通过在Blend中创建动画来实现此目的。添加模糊效果,然后创建一个故事板。你可以称它为什么(BlurIn)。然后在时间线内设置模糊效果的开始和结束。将此动画放置在资源字典中或您正在触发效果的xaml页面中。

然后,您可以通过调用代码这个动画像

private void BeginAnimation() 
     { 
      stroyboard1.Begin(); 
     } 

我不知道你是如何您的应用程序设置,但是这取决于你如何使用UI元素,视图可以有物体或景色出现将此模糊效果应用于负载或事件处理程序。

+0

不能应用模糊到窗口内的容器有关系吗?我不知道如何可以算出透明窗口的背景和所产生的模糊效果的透明度,但。 – Joey

+0

不确定你的容器是什么意思?如果你的意思是UI元素,比如网格,堆栈面板,画布,那么是的。您可以将效果应用于这些对象。但是,将其应用于真正的窗口容器是不可能的。 – rlcrews