2010-09-14 14 views
5

Estoy configurando el BackgroundImage de Windows Form en una imagen de 200 x 200. La Forma es 500 x 500. Quiero que la imagen se ancle en la esquina inferior derecha del formulario. Sin embargo, la única opción disponible para mí es la propiedad BackgroundImageLayout; establecer esto en 'Ninguno' hace que la imagen se ancle en la parte superior izquierda. ¿Cómo puedo cambiar esto?Posición de BackgroundImage en Windows Form

Nota: Estoy utilizando .NET 2.0

+1

No tiene esa opción en WinForms. [ImageLayout Enumeration] (http://msdn.microsoft.com/en-us/library/system.windows.forms.imagelayout.aspx) en MSDN. – ChrisF

Respuesta

7

Solo sáquelo usted mismo en el método OnPaintBackground(). Agregue la imagen a los recursos (lo llamé BkgImage) y haga que el código del formulario se vea así:

public Form1() { 
     InitializeComponent(); 
     backgroundImage = Properties.Resources.BkgImage; 
     this.DoubleBuffered = true; 
     this.SetStyle(ControlStyles.ResizeRedraw, true); 
    } 
    private Image backgroundImage; 

    protected override void OnPaintBackground(PaintEventArgs e) { 
     base.OnPaintBackground(e); 
     var rc = new Rectangle(this.ClientSize.Width - backgroundImage.Width, 
      this.ClientSize.Height - backgroundImage.Height, 
      backgroundImage.Width, backgroundImage.Height); 
     e.Graphics.DrawImage(backgroundImage, rc); 
    } 
2

No se puede hacer eso con el BackgroundImageLayout.
Sin embargo, lo que podría hacer es agregar un PictureBox, anclarlo en la parte inferior derecha y establecerlo en el valor z más bajo. Esto daría como resultado prácticamente el efecto solicitado.

+0

¿Eso daría como resultado una imagen de fondo? es decir, ¿aparecerán otros controles como botones en la parte superior del cuadro de imagen? –

+0

Sí. [15 caracteres] –

Cuestiones relacionadas