WPF 中的模糊背景
Blur background in WPF
我正在尝试在 WPF 中创建模糊效果,但我想模糊位于控件后面的内容(例如 Grid),我不打算模糊 Grid 的内容。
我想做类似这张图片的东西。
<Rectangle>
<Rectangle.Effect>
<BlurEffect Radius="{DynamicResource BlurRadius}"/>
</Rectangle.Effect>
<Rectangle.Fill>
<VisualBrush
ViewboxUnits="Absolute"
Viewbox="{Binding RenderTransform.Children[3],
Converter={StaticResource TranslateTransformToRectViewboxVisualBrushConverter},
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}},
UpdateSourceTrigger=PropertyChanged}"
AlignmentX="Left" AlignmentY="Top"
Visual="{Binding ElementName=BackgroundContainer}" Stretch="None">
<VisualBrush.Transform>
<TranslateTransform X="0" />
</VisualBrush.Transform>
</VisualBrush>
</Rectangle.Fill>
</Rectangle>
如果您正在寻找这样的东西:
答案是使用 BitmapEffect
:
<Image Source="http://www.pingminghealth.com/wp-content/uploads/2010/12/cherries.jpg" Stretch="UniformToFill">
<Image.BitmapEffect>
<BlurBitmapEffect Radius="20" />
</Image.BitmapEffect>
</Image>
您可以在 msdn 上找到有关它的教程:How to Apply a Blur Effect to a Visual。
以防万一,有人仍在寻找 2018 年的解决方案,这样的事情对我有用:BlurryControls.BlurryUserControl.cs
我正在尝试在 WPF 中创建模糊效果,但我想模糊位于控件后面的内容(例如 Grid),我不打算模糊 Grid 的内容。
我想做类似这张图片的东西。
<Rectangle>
<Rectangle.Effect>
<BlurEffect Radius="{DynamicResource BlurRadius}"/>
</Rectangle.Effect>
<Rectangle.Fill>
<VisualBrush
ViewboxUnits="Absolute"
Viewbox="{Binding RenderTransform.Children[3],
Converter={StaticResource TranslateTransformToRectViewboxVisualBrushConverter},
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}},
UpdateSourceTrigger=PropertyChanged}"
AlignmentX="Left" AlignmentY="Top"
Visual="{Binding ElementName=BackgroundContainer}" Stretch="None">
<VisualBrush.Transform>
<TranslateTransform X="0" />
</VisualBrush.Transform>
</VisualBrush>
</Rectangle.Fill>
</Rectangle>
如果您正在寻找这样的东西:
答案是使用 BitmapEffect
:
<Image Source="http://www.pingminghealth.com/wp-content/uploads/2010/12/cherries.jpg" Stretch="UniformToFill">
<Image.BitmapEffect>
<BlurBitmapEffect Radius="20" />
</Image.BitmapEffect>
</Image>
您可以在 msdn 上找到有关它的教程:How to Apply a Blur Effect to a Visual。
以防万一,有人仍在寻找 2018 年的解决方案,这样的事情对我有用:BlurryControls.BlurryUserControl.cs