WPF与大图像崩溃。 HRESULT 0x88980406

时间:2013-02-19 16:17:35

标签: wpf image canvas

我有一个非常宽60 x 50,000的UserControl,它显示音频文件的波形。一些用户报告了0x88980406的结果导致崩溃,谷歌没有提供任何有用的信息。该应用程序正在使用.Net 4.0。

        if (mainCanvas.Children.Count > 0)
            mainCanvas.Children.Clear();

        for (int i = 0; i < CurrentSong.waveformLines.Length; i++)
        {
            mainCanvas.Children.Add(CurrentSong.waveformLines[i]);
        }

        RenderTargetBitmap renderBitmap = new RenderTargetBitmap((int)Width, (int)Height, 96d, 96d, PixelFormats.Pbgra32);

        // needed otherwise the image output is black 
        mainCanvas.Measure(new Size((int)Width, (int)Height));
        mainCanvas.Arrange(new Rect(new Size((int)Width, (int)Height)));
        renderBitmap.Render(mainCanvas);

        Image img = new Image();
        img.Source = renderBitmap;

        if (mainCanvas.Children.Count > 0)
            mainCanvas.Children.Clear();
        mainCanvas.Children.Add(img);

我正在做的是将样本值绘制为线段,然后将它们全部添加到数组中并将它们放在画布上。然后我从画布创建一个位图,删除所有线段,然后将位图作为Image控件的源添加回画布。

它在mainCanvas.Children.Add(img)崩溃;

0 个答案:

没有答案