2012-06-19 2 views
3

У меня есть .NET Winform с фоновым изображением, и тестирование только что сообщалось, что BackgroundImage скрыт, когда параметры отображения в Win7 установлены в режим высокой контрастности. Я понимаю, почему MS делает это по умолчанию, но я надеюсь, что есть способ переопределить это поведение без изменения макета моей формы? Я бы предпочел не переносить события кликов и т. Д. На другой элемент управления изображением, который я добавляю поверх формы, чтобы имитировать фон (а затем также нужно перенести мои прозрачные PNG, чтобы они были включены этим) ... мы на поздней стадии тестирования, тем меньше меняется, тем лучше.Keep Form.BackgroundImage отображается в режиме высокой контрастности

«Фон» на самом деле не типичный фон, на нем есть текст и важный контент, который не должен быть скрыт КОГДА-ЛИБО. Конечно, вы можете использовать -1 для плохого дизайна, но, похоже, он работал до этой незначительной проблемы;)

ответ

0

Это просто предположение: будет ли оно скрывать изображение, если вы используете монохромное изображение? Затем вы можете проверить во время выполнения (System.Windows.Forms.SystemInformation.HighContrast для WinForms или System.Windows.SystemParameters.HighContrast для WPF) и установить его на соответствующее изображение.

+0

В итоге я просто рисовал его в OnPaint: e.Graphics.DrawImage (новый Bitmap (BackgroundImage), 0, 0); Если никто другой не даст лучшего ответа, я отвечу вам как ответ, так как свойство для проверки HighContrast помогло бы, если бы мне нужно было идти другим путем (например, показывать ярлык только с текстом вместо моего изображения). – eselk

Смежные вопросы