小さなグラフを描画する wpf UserControl があります。UserControl は、グリッド内で複数回レンダリングされます。残念ながら、UserControl が複数回表示されると、AccessViolation Exception が発生します。
AccessViolation 例外は、他の描画の後にスローされます (FillRectangle 呼び出しのみ)。
コードは次のようになります。
var bmp = BitmapFactory.New(200, 30);
using (bmp.GetBitmapContext())
{
bmp.FillRectangle(0, 0, (int)bmp.Width , (int)bmp.Height , MyColors.WhiteSmoke);
// .. some calculations and rectangle drawings
bmp.FillRectangle(vX1, vY1, vX2, vY2, Colors.RosyBrown); //<- Violation Exception
}
奇妙なことは次のとおりです。 最後の行を次のように変更すると:
bmp.FillRectangle(vX1, vY1, vX2, vY2, Color.FromArgb(100, Colors.RosyBrown.R, Colors.RosyBrown.G, Colors.RosyBrown.B));
すべて正常に動作します。
WritableBitmap を使用するのはこれが初めてです。私は何か間違ったことをしていますか?