2015-02-17 4 views
0

Я не смог найти ответ на это:с # Override высокой контрастности для фонового изображения

У меня есть фоновое изображение на моей форме, что я хочу, чтобы оставаться видимым даже тогда, когда система находится в режиме высокой контрастности , Есть ли код, который можно ввести, который отменяет режим HC?

Я пробовал это на мероприятии Form Load, но не повезло - нет определения для графики. (Не уверен, что это будет даже жизнеспособное решение):

OnPaint: e.Graphics.DrawImage(new Bitmap(BackgroundImage), 0, 0); 

Помимо создания PictureBox через мою форму и положить изображение таким образом, кто-нибудь знает способ, чтобы показать BG изображение формы всегда?

+0

Возможный дубликат [Keep Form.BackgroundImage отображается в режиме высокой контрастности] (http: /stackoverflow.com/questions/11110050/keep-form-backgroundimage-visible-in-high-contrast-mode) – cubrr

+0

Что означает строка «OnPaint», так это то, что вам нужно поместить код в обработчик события «OnPaint» формы – cubrr

+0

@GrawCube Ah, gotcha. Есть ли способ получить его на мероприятии FormLoad? – EyeSeeSharp

ответ

1

Переопределение OnPaintBackground метода:

protected override void OnPaintBackground(PaintEventArgs e) 
{ 
    e.Graphics.DrawImage(new Bitmap(BackgroundImage), e.ClipRectangle); 
} 

Это DrawImage перегрузки будет растянуть изображение по размеру прямоугольника. Если ClipRectangle не работает (извините, я не могу проверить это прямо сейчас!), Создайте новый Rectangle с размерами фона