Изменить изображение bg относительно экрана c # winforms

#c# #image #winforms #background #positioning

#c# #изображение #winforms #фон #позиционирование

Вопрос:

Вот что у меня есть:

         var rand = new Random();
        var files = Directory.GetFiles("C:/Projects/MOMENTUM/MOMENTUM/pics/", "*.jpg");
        Image bgimage = new Bitmap(files[rand.Next(files.Length)]);
        BackgroundImage = bgimage;

        Rectangle UsedScreen = Screen.FromControl(this).Bounds;
        if (UsedScreen.Height / UsedScreen.Width > bgimage.Height / bgimage.Width)
        {
            //SET IMAGE HEIGHT TO SCREEN HEIGHT
        }
        else
        {
            //SET IMAGE WIDTH TO SCREEN WIDTH
        }
 

Как вы видите, я сначала выбираю случайное изображение из определенной папки, а затем устанавливаю его в качестве фонового изображения.

Я хочу, чтобы это приложение работало в полноэкранном режиме. Однако, если я установлю для свойства bgimage ImageLayout значение Zoom, появятся уродливые границы, а если я установлю для него значение stretch, это будет выглядеть ужасно.

Я хочу добиться следующего:

Я получаю текущий используемый размер экрана через границы экрана, а затем настраиваю изображение так, чтобы оно соответствовало экрану без искажений.

Часть изображения будет вырезана, но основная цель состоит в том, чтобы весь экран всегда был заполнен изображением (см. Комментарии в if). Я не знаю, как это сделать, потому что, если я попытаюсь

 bgimage.Height = UsedScreen.Height
 

Я не могу перезаписать высоту изображения.

Есть идеи?

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

1. Если оно достаточно велико BackgroundImageLayout=ImageLayout.None . В противном случае вам нужно увеличить его..

2. Необходимо масштабировать изображение, чтобы оно соответствовало границам.