0
我有一个自定义控件,我从Control继承。我需要显示一个图标,以便使用可用的属性(BackgroundImage和BackgroundImageLayout)。C#用户控件的背景图像
我选择一个图像并将布局设置为无。但是,我不希望图像被绘制在控件的左上角,而是在我指定的另一个位置。
这可能吗?
我有一个自定义控件,我从Control继承。我需要显示一个图标,以便使用可用的属性(BackgroundImage和BackgroundImageLayout)。C#用户控件的背景图像
我选择一个图像并将布局设置为无。但是,我不希望图像被绘制在控件的左上角,而是在我指定的另一个位置。
这可能吗?
在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)处再次绘制图像。所以我完成了2张图片。 – 2014-10-20 12:43:46
不要使用BackgroundImage和BackgroundImageLayout属性,代码中的OnPaint() – artm 2014-10-20 12:45:27
@ Ivan-MarkDebono'myBackgroundImage'中的这个代码引用了新图像,而不是BackgroundImage属性。 – artm 2014-10-20 12:47:49