UWP Windows组合模糊实际上不会模糊图像

时间:2016-05-23 03:11:11

标签: c# windows-10 uwp composition

我正在开发一个使用Windows Composition API的UWP应用程序。

有一个名为splitViewSideBarBlur的图像控件。使用以下扩展方法将此图像的源设置为另一个XAML元素的位图:

public static async Task<IRandomAccessStream> RenderToRandomAccessStream(this UIElement element)
{
    if (element == null) throw new NullReferenceException();

    var rtb = new RenderTargetBitmap();
    await rtb.RenderAsync(element);

    var pixelBuffer = await rtb.GetPixelsAsync();
    var pixels = pixelBuffer.ToArray();

    var displayInformation = DisplayInformation.GetForCurrentView();

    var stream = new InMemoryRandomAccessStream();
    var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream);
    encoder.SetPixelData(BitmapPixelFormat.Bgra8,
        BitmapAlphaMode.Premultiplied,
        (uint)rtb.PixelWidth,
        (uint)rtb.PixelHeight,
        displayInformation.RawDpiX,
        displayInformation.RawDpiY,
        pixels);

    await encoder.FlushAsync();
    stream.Seek(0);

   return stream;
}

我使用此扩展函数来获取特定XAML元素的图像,并将其保存到名为BitmapImage的{​​{1}}变量中。该位图图像被设置为splitViewBlurImage元素的背景。接下来,我应用GaussianBlur并尝试将新的模糊图像设置回SplitView。但是,新图像拒绝模糊。以下是代码:

SplitView

我在这里做错了什么?背景图像很好,并且具有黑色色调,但图像根本不模糊。

0 个答案:

没有答案