2014-10-20 98 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