2011-11-16 47 views
1

如果我的控制層,如下面的模糊控制:另一個控制

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財產?我曾希望如果我創建了一個疊加層(如示例中所示),但實際上,模糊效果僅影響控件,它是子級,而不是父級。即它不像將磨砂玻璃放在Grid1上,這是我以後的效果。

我猜我需要做一些凌亂的事情,比如將GridBlurOverlay的背景設置爲基於Grid1的VisualBrush,但我想知道這種方法可能是什麼,如果有更優雅的東西(並且性能更好)?

+1

爲什麼不是你想設置的'Effect'財產? – Jay

回答

0

如果GridBlurOverlay是一個嘈雜的&不透明,不會玩它的不透明給你想要的效果?

0

這是你想要的嗎?

EDIT(更新)

<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> 
+0

我認爲原文中的「藍色效果」應該是「模糊效果」。 – Jay

+0

@Jay好了,我編輯了我的帖子...... – punker76

+0

這正是海報說他做的*不*要做的 - 將模糊效果直接應用於包含其他控件的「網格」(儘管我仍然懷疑爲什麼這是要求)。 – Jay