#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) был вызван при моей инициализации. Я не уверен, что именно это делает, но это было причиной моей проблемы с цветом фона.