C# 如何在uwp上对网格背景进行模糊?

C# 如何在uwp上对网格背景进行模糊?,c#,xaml,win-universal-app,C#,Xaml,Win Universal App,现在,我想模糊它,比如ios上的模糊。不透明度不是模糊效果。 要产生纯模糊效果,可以使用RendertargetBitmap或Win2D 我更喜欢使用Win2D,因为高斯模糊效果是明确的,可以更精确地配置: 使用(var stream=await Content.RenderToRandomAccessStream()) { var设备=新的画布设备(); var bitmap=await CanvasBitmap.LoadAsync(设备、流); var renderer=新的CanvasRe

现在,我想模糊它,比如ios上的模糊。

不透明度不是模糊效果。 要产生纯模糊效果,可以使用RendertargetBitmap或Win2D

我更喜欢使用Win2D,因为高斯模糊效果是明确的,可以更精确地配置:


使用(var stream=await Content.RenderToRandomAccessStream())
{
var设备=新的画布设备();
var bitmap=await CanvasBitmap.LoadAsync(设备、流);
var renderer=新的CanvasRenderTarget(设备,
bitmap.SizeInPixels.Width,
bitmap.SizeInPixels.Height,bitmap.Dpi);
使用(var ds=renderer.CreateDrawingSession())
{
var blur=新的高斯模糊效应();
blur.BlurAmount=5.0f;
blur.Source=位图;
ds.DrawImage(模糊);
}
stream.Seek(0);
wait renderer.SaveAsync(stream,CanvasBitmapFileFormat.Png);
BitmapImage=新的BitmapImage();
image.SetSource(流);
paneBackground.ImageSource=图像;
}

如果您想了解更多信息,可以使用Windows 10周年更新的合成API应用模糊。然而,如果你试图模糊窗口或应用程序后面的东西,那是不可能的。另一方面,如果你的网格后面有像图片这样的东西,并且希望图片变得模糊,那么这就行了

我写了一个类似问题的答案。

使用


如果要增加或减少模糊量,请更改“行为”中的值

如果您想要任何代码示例,请查看此GitHub项目。
.

您可以使用0.65-0.75的不透明度使其模糊,这可能会对您有所帮助。Content.RenderToRandomAccessStream()在uwp上没有
grid background="white"
<Grid>
    <Grid>
        <interactivity:Interaction.Behaviors>
            <behaviors:Blur x:Name="BlurBehavior" Value="25" Duration="0" 
                              Delay="0" AutomaticallyStart="True"/>
        </interactivity:Interaction.Behaviors>
    </Grid>
    <Grid>
        <!-- Your Content -->
    </Grid>
</Grid>