I've sub-classed a control (ToolStripStatusLabel) to try and override the way it paints. At the moment I would expect this code to effectively do nothing, but it leads to a strange output:
protected override void OnPaint(PaintEventArgs e)
{
  // Create a temp image to draw to and then put that onto the control transparently
  using (Bitmap bmp = new Bitmap(this.Width, this.Height))
  {
    using (Graphics newGraphics = Graphics.FromImage(bmp))
    {
      // Paint the control to the temp graphics
      PaintEventArgs newEvent = new PaintEventArgs(newGraphics, e.ClipRectangle);
      base.OnPaint(newEvent);
      // Copy the temp image to the control
      e.Graphics.Clear(this.BackColor);
      e.Graphics.DrawImage(bmp, new Rectangle(0, 0, this.Width, this.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel);//, imgAttr);
    }
  }
}
When I run this code the text on the control comes out very strangely, the expected image is at the top, the actual output is at the bottom:
It looks like when the control is drawing the text the alpha blending with the antialiased text is going wrong.
Things that I've tried:
- Setting the CompositingMode of 
e.graphicsandnewGraphics - Setting the 
TextRenderingHint. - setting the pixel format of 
newGraphicsto 32Bpp ARGB and Premultiplied ARGB - Clearing the 
newGraphicswith the controls background colour before asking the base class to render. 
