如果我有控件层,例如:
Window
- Grid1 (containing various UI elements)
- GridBlurOverlay (does nothing except blur Grid1)
- Grid2 (containing a single UI element (e.g. a "please wait" control)
如何在不实际设置Effect
属性的情况下对grid1及其内容应用蓝色效果?我曾希望,如果我创建一个叠加(如示例中),这将起作用,但实际上模糊效果只影响控件及其子项,而不是它的父项。即它不像在Grid1上放置磨砂玻璃,这就是我追求的效果。
我猜我需要做一些混乱的事情,例如将GridBlurOverlay的背景设置为基于Grid1的VisualBrush,但我想知道这个方法究竟是什么,以及是否有更优雅的东西(以及更好的性能) ?
答案 0 :(得分:0)
如果GridBlurOverlay是一个嘈杂的&不透明,不会玩它的不透明度给你想要的效果?
答案 1 :(得分:0)
这就是你想要的吗?
编辑(更新)
<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>