Рисование изображения на форме с помощью Graphics.DrawImage () - PullRequest
0 голосов
/ 16 июня 2011

Я пытаюсь нарисовать изображение в форме перед всеми другими элементами управления. Я попытался сделать прозрачную панель перед элементами управления, но она показывает только фон, а элементы управления не отображаются. мой код таков: (я использую его для создания эффекта затухания)

Player1ColorMatrix.Matrix33 = Player1Transparency;

Player1ImageAttributes.SetColorMatrix(Player1ColorMatrix,
                    ColorMatrixFlag.Default,
                    ColorAdjustType.Bitmap);

    e.Graphics.DrawImage(Player1ScoreImage, Player1rect, 0, 0, 200, 62, GraphicsUnit.Pixel, Player1ImageAttributes);
    Player1Transparency = 0.0f;

player1scoreimage - это изображение, а player1rect - это прямоугольник, в котором я хочу нарисовать изображение

как мне сделать это изображение перед другими элементами управления?

спасибо, Офир

1 Ответ

1 голос
/ 16 июня 2011

Попробуйте использовать для этого специальную панель:

private class PanelX : Panel
{
  protected override CreateParams CreateParams
  {
    get
    {
      CreateParams cp = base.CreateParams;
      cp.ExStyle |= 0x20;
      return cp;
    }
  }

  protected override void OnPaint(PaintEventArgs e)
  {
    using (SolidBrush brush = new SolidBrush(Color.FromArgb(128, 0, 0, 0)))
    {
      e.Graphics.FillRectangle(brush, this.ClientRectangle);
    }
  }
}
...