Winforms PictureBox缩放抗锯齿错误的解决方法?

Winforms PictureBox缩放抗锯齿错误的解决方法?,winforms,windows-xp,Winforms,Windows Xp,一个PictureBox,它具有SizeMode.Zoom并放大源图像,在底部和右侧边缘添加白色。有人有一个简单的行之有效的解决方案吗?我相信这个bug在GDI+中,所以明显的自定义重绘无法修复它。目前我正在使用WPF,这是我想要避免的 我甚至会接受用黑色代替坏白色的kluge:) 示例:来自具有单个中心白色像素的源,而不是: 它给出了: 代码是: private void PictureBoxZoomBug() { BitmapSource bitmapSource = Bi

一个
PictureBox
,它具有
SizeMode.Zoom
并放大源图像,在底部和右侧边缘添加白色。有人有一个简单的行之有效的解决方案吗?我相信这个bug在GDI+中,所以明显的自定义重绘无法修复它。目前我正在使用WPF,这是我想要避免的

我甚至会接受用黑色代替坏白色的kluge:)

示例:来自具有单个中心白色像素的源,而不是:

它给出了:

代码是:

private void PictureBoxZoomBug()
{
  BitmapSource bitmapSource = 
    BitmapSource.Create(3, 3, 96, 96, System.Windows.Media.PixelFormats.Gray8, null,
     new byte[] { 0, 0, 0, 0, 0xFF, 0, 0, 0, 0 }, 3);
  TestDiscamImage.Source = bitmapSource;  // OK

  Bitmap bitmap;
  using (MemoryStream stream = new MemoryStream())
  {
    PngBitmapEncoder enc = new PngBitmapEncoder();
    enc.Frames.Add(BitmapFrame.Create(bitmapSource));
    enc.Save(stream);
    bitmap = new System.Drawing.Bitmap(stream);
  }
  TestDiscamCapture_pictureBox.Image = bitmap; // Extra white at bottom and right 
  }

谢谢

将PictureBox.BackColor属性设置为黑色。天哪,是的,这对kluge来说很好用。请输入答案,以便我接受。谢谢,汉斯。我觉得你的建议很有帮助。但如果你不想把它作为一个答案,没问题。再次感谢。