我需要创建一个透明的模糊背景。让我们假设我有一个白色模糊透明背景的边框。边界后面的一切都很模糊。
我正在努力避免依赖;我目前正在使用.NET 3.0,并希望它也可以在XP上运行。
样机图片:
答案 0 :(得分:16)
VisualBrush可以用来接近你想要的东西,但有一些限制。
只要您只需要窗口内的玻璃效果(而不是对其他窗户的影响)并且玻璃效果边框的位置被严格控制,那么您可以这样: -
<Grid>
<Border x:Name="src" Background="Silver">
<Label HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="50">Hello World</Label>
</Border>
<Border Background="White" Margin="40" >
<Border Opacity="0.5" >
<Border.Effect>
<BlurEffect Radius="10"/>
</Border.Effect>
<Border.Background>
<VisualBrush Visual="{Binding ElementName=src}" Stretch="None" />
</Border.Background>
</Border>
</Border>
</Grid>
我不认为可视化树中的子元素能够获取它的父元素的VisualBrush,因此这可能是对您的限制。 (即背景板不能包含玻璃面板)
我经常使用VisualBrushes多次使用TranslateTransforms将它们移动一点,以便在正确的位置获得正确的图像。
改变XAML
使用Effect
而不是BitmapEffect
,这是较慢的,现在已经折旧,如下面Steven Robbins的评论所述。
答案 1 :(得分:3)
我想你需要使用效果,应用于背景矩形或网格。
如果漂浮在你的船上,有一个不错的效果库here。
答案 2 :(得分:0)
使用Vista glass。