Цвет фона формы или изображение, закрепленное как белое

#c# #winforms #forms #background #backcolor

#c# #winforms #формы #фон #backcolor

Вопрос:

Я начал самостоятельно изучать C # неделю назад. Я начал с написания Tetris, чтобы познакомиться с языком. Я запустил основную игровую механику, рисуя на предварительно обработанном растровом изображении и отображая его в picturebox, который в то время был того же размера, что и окно. Теперь я увеличил размер окон и начал добавлять другие элементы управления сбоку от окна с изображением.

Проблема в том, что теперь, когда я расширил окно, отображающее фон формы, цвет фона постоянно остается белым, или я получаю странный выцветший вид от белого до черного в нижнем углу.

Я попробовал несколько вещей:
— установил задний цвет формы вручную, но это отражается только на надписях
— проверил, что клавиша прозрачности пуста
— установил для клавиши прозрачности неиспользуемый цвет, ничего не меняется
— добавил bmp в качестве фонового изображения формы, по-прежнему остается белым
— проверил мой код, чтобы увидеть, все ли я записывал непосредственно на фон формы

Я не могу понять, как это исправить; у кого-нибудь есть какие-либо идеи?

РЕДАКТИРОВАТЬ:
Я нашел ответ на свой вопрос. setStyle (элементы управления.Непрозрачный, true) был вызван в моем конструкторе. Я не уверен, что именно это делает, но я прокомментировал это, и это устранило мою проблему.

Ответ №1:

Пожалуйста, перечислите требования, означает ли это именно то, что вам нужно?

После того, как я прочитал ваш вопрос. Ниже приводится мое понимание.

Если ваша проблема связана с изменением размера окна, то

  • используйте разделенный контейнер, который доступен в toolbox из группы «Контейнеры».

  • установите для его свойства Dock значение fill, чтобы заполнить все окно, если оно изменено / развернуто.

  • Затем используйте правую панель для размещения вашего графического поля, а левую панель — для других элементов управления.

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

Если ваша проблема связана с цветом фона окна, то

  • На самом деле проблема с цветом фона возникает, если форма является контейнером Mdi.

  • Проверьте, установлено ли для свойства IsMdiContainer значение false. Если true, то это MdiContainer.

  • Следующий блок кода устанавливает цвет фона Mdi Forms на цвет фона форм.

     foreach (Control c in this.Controls)
    {
        if (c is MdiClient)
        {
            c.BackColor = this.BackColor;
        }
    }
      

Ответ №2:

Я нашел ответ на свой вопрос. setStyle (элементы управления.Непрозрачный, true) был вызван при моей инициализации. Я не уверен, что именно это делает, но это было причиной моей проблемы с цветом фона.