为什么有些控件同时具有BackgroundImage和Image属性?

时间:2011-01-08 16:39:12

标签: .net winforms controls

为什么某些控件如ButtonPictureBox同时具有BackgroundImageImage属性?

为什么在按钮的情况下都需要它们? 或为什么在picturebox backgroundimage应该可用?

2 个答案:

答案 0 :(得分:7)

BackgroundImage继承自Control

Image的情况下,

Button继承自ButtonBase


一般来说,BackgroundImage是:

  

表示要在控件背景中显示的图像的图像。

Image将是 on 控件。


为什么你需要这两个?

  • 因为您可能在控件周围有边距,您希望在其上显示背景图像。
  • 因为有时您可能会在Image上使用透明胶片,并希望显示背景图片。

答案 1 :(得分:3)

这很大程度上是因为它无处不在。它从Control类继承而来,不需要额外的工作来使其正常工作。实际上,隐藏需要额外的工作,这是不支持背景图像的本机Windows控件所必需的。像TreeView一样:

public class TreeView : Control
{
    [EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
    public override Image BackgroundImage
    {
       // etc..
    }
// etc..
}

请注意override关键字以及在属性网格和编辑器中隐藏它所需的属性。额外的工作,以阻止它工作。