2010-09-14 66 views
5

我將Windows窗體的BackgroundImage設置爲200 x 200圖像。該表單爲500 x 500.我希望圖像可以錨定在表單的右下角。不過,唯一可用的選項是BackgroundImageLayout屬性 - 將其設置爲「無」會導致圖像錨定在左上角。我該如何改變這一點?Windows窗體中BackgroundImage的位置形式

注:我使用.NET 2.0

+1

WinForms中沒有該選項。 MSDN上的[ImageLayout Enumeration](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.imagelayout.aspx)。 – ChrisF 2010-09-14 09:26:14

回答

7

只需在OnPaintBackground()方法中自己繪製它即可。將圖像添加到資源(我稱之爲BkgImage),並使表單代碼如下所示:

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

你不能這樣做,與BackgroundImageLayout。
但是,你可以做的是添加一個PictureBox,將其錨定到右下角並將其設置爲最低的z值。這將導致幾乎所需的效果。

+0

會導致背景圖像?即像按鈕之類的其他控件是否出現在圖片框的「頂部」? – 2010-09-14 09:50:04

+0

是的。 [15個字符] – 2010-09-14 17:04:45