2014-10-20 87 views
0

我有一個自定義控件,我從Control繼承。我需要顯示一個圖標,以便使用可用的屬性(BackgroundImage和BackgroundImageLayout)。C#用戶控件的背景圖像

我選擇一個圖像並將佈局設置爲無。但是,我不希望圖像被繪製在控件的左上角,而是在我指定的另一個位置。

這可能嗎?

回答

0

OnPaint()裏面試試類似這樣的東西;

Image myBackgroundImage = Image.FromFile("xyz.jpg"); 

e.Graphics.DrawImage(myBackgroundImage, myX, myY, new Rectangle(0, 0, myBackgroundImage.Width, myBackgroundImage.Height), GraphicsUnit.Pixel); 

您正在告訴Graphics對象在myX和myY的特定位置繪製圖像。矩形是要繪製的圖像部分,在這種情況下是整個圖像。

+0

我試過了。上面的代碼在指定位置正確繪製圖像。但是,由於佈局爲「無」,控件會自動在(0,0)處再次繪製圖像。所以我完成了2張圖片。 – 2014-10-20 12:43:46

+0

不要使用BackgroundImage和BackgroundImageLayout屬性,代碼中的OnPaint() – artm 2014-10-20 12:45:27

+0

@ Ivan-MarkDebono'myBackgroundImage'中的這個代碼引用了新圖像,而不是BackgroundImage屬性。 – artm 2014-10-20 12:47:49