Почему некоторые элементы управления имеют свойство BackgroundImage и Image? - PullRequest
2 голосов
/ 08 января 2011

Почему некоторые элементы управления, такие как Button или PictureBox, имеют свойство BackgroundImage и Image?

почему в случае кнопки они оба нужны? или почему в картинке должно быть фоновое изображение?

Ответы [ 2 ]

7 голосов
/ 08 января 2011

BackgroundImage наследуется от Control.

Image, в случае Button наследуется от ButtonBase.


Как правило, BackgroundImage:

Изображение, представляющее изображение для отображения на фоне элемента управления.

И Image будет тем, который на контроле.


Зачем вам два?

  • Поскольку у вас могут быть поля вокруг элемента управления, где вы хотите, чтобы фоновое изображение отображалось на них.
  • Потому что иногда вы можете использовать прозрачные пленки на Image и хотите, чтобы фоновое изображение просвечивало.
3 голосов
/ 08 января 2011

Это во многом потому, что оно есть в любом случае.Он наследуется от класса Control, для его работы не требуется никакой дополнительной работы.Фактически, для скрытия требуется дополнительная работа, необходимая для собственных элементов управления Windows, которые не поддерживают фоновое изображение.Как и TreeView:

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

Обратите внимание на ключевое слово override и атрибуты, необходимые для его скрытия как в сетке свойств, так и в редакторе.Дополнительная работа, чтобы остановить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...