windows forms: Установка фонового изображения

#c# #winforms #background

Вопрос:

Я пытаюсь установить фоновое изображение в форме Windows. Как бы я поступил правильно, если бы речь шла о разных разрешениях и масштабировании экрана.

Я знаю, что могу установить фоновое изображение, используя этот фрагмент кода:

 this.BackgroundImage = Properties.Resources.BackgroundImage
 

Я хочу, чтобы фоновое изображение заполнило всю форму. Я думаю, что нахожу правильные размеры, используя

 this.ClientRectangle.Width
this.ClientRectangle.Height
 

в классе windows form.

Я могу растянуть изображение, чтобы заполнить весь фон этими цифрами, или я могу рассчитать разницу в соотношении и соответственно растянуть изображение, но сохранить соотношение сторон.

Чего я не понимаю, так это того, что происходит при масштабировании рабочего стола Windows со 100% до 125%, 150% или других параметров масштабирования, о которых сообщает:

 this.ClientRectangle.Width
this.ClientRectangle.Height
 

Похоже, вы не сообщаете о цифре, которая похожа на увеличение в процентах.
При 100% — ном масштабе рабочего стола ширина составляет 704, но при 125% — ном масштабе рабочего стола ширина теперь составляет 802. При увеличении на 25% со 100% новое число должно было составить 880.

Не похоже, что я всегда смогу заполнить весь фон, если только я не растяну изображение или не буду использовать другие изображения.

Комментарии:

1.Поддержка высокого разрешения в Windows Forms.

Ответ №1:

Попробуйте использовать this.BackgroundImageLayout .

Например: this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;