0

60 x 50,000オーディオ ファイルの波形を表示している非常に幅の広い UserControl があります。何人かのユーザーが hresult のクラッシュを報告していますが0x88980406、Google はそれに関する有用な情報を提供していません。アプリは .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);

私がやっていることは、サンプル値を線分として描画し、それらをすべて配列に追加してキャンバスに配置することです。次に、キャンバスからビットマップを作成し、すべての線分を削除してから、イメージ コントロールのソースとしてビットマップをキャンバスに追加します。

でクラッシュしmainCanvas.Children.Add(img)ます。

4

0 に答える 0