.net 模糊另一个控件下的控件

.net 模糊另一个控件下的控件,.net,wpf,effects,.net,Wpf,Effects,如果我有控件层,例如: Window - Grid1 (containing various UI elements) - GridBlurOverlay (does nothing except blur Grid1) - Grid2 (containing a single UI element (e.g. a "please wait" control) 如何对grid1及其内容应用蓝色效果,而不实际设置其effect属性?我曾希望,如果我创建了一个覆盖(如示例中所示),这会起作

如果我有控件层,例如:

Window
 - Grid1 (containing various UI elements)
  - GridBlurOverlay (does nothing except blur Grid1)
 - Grid2 (containing a single UI element (e.g. a "please wait" control)
如何对grid1及其内容应用蓝色效果,而不实际设置其
effect
属性?我曾希望,如果我创建了一个覆盖(如示例中所示),这会起作用,但事实上,模糊效果只会影响控件及其子控件,而不会影响其父控件。也就是说,这不像是把磨砂玻璃放在网格上,这是我想要的效果


我猜我需要做一些混乱的事情,比如将GridBlurOverlay的背景设置为基于Grid1的VisualBrush,但我想知道具体的方法是什么,是否有更优雅(性能更好)的方法?

如果GridBlurOverlay是一个嘈杂且不透明的,玩它的不透明性不会给你想要的效果吗

这就是你想要的吗

编辑(更新)



为什么您不想设置
效果
属性?我认为原始帖子中的“蓝色效果”应该是“模糊效果”。这正是海报所说的他不想做的——将模糊效果直接应用到包含其他控件的
网格
(尽管我仍然想知道为什么这是要求)。
<Grid HorizontalAlignment="Stretch"
      VerticalAlignment="Stretch">

  <Grid>
    <!-- you can activate this if you want this effect -->
    <Grid.Background>
      <SolidColorBrush Color="Gray" Opacity="0.6"/>
    </Grid.Background>
    <Grid.Effect>
      <BlurEffect Radius="5"/>
    </Grid.Effect>

    <TextBlock VerticalAlignment="Top"
               Text="Some Controls"
               FontSize="60" />
  </Grid>

  <Border Background="Gray" HorizontalAlignment="Center" VerticalAlignment="Center">
    <TextBlock Text="Please Wait"
               FontSize="60" />
  </Border>
</Grid>