Я хотел бы изменить цвет границы формы окна (граница с заголовком формы). Пример, который я нашел в codeplex, слишком длинный и запутанный. Может ли кто-нибудь помочь мне в чем-то более простом?
Как изменить цвет границы формы С#?
Ответы (6)
Переопределите его с помощью:
protected override void OnPaint(PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, ClientRectangle, Color.[your_color], ButtonBorderStyle.Solid);
}
К сожалению, поскольку граница формы рисуется операционной системой, это сложная задача. Нет никакого реального способа обойти это.
НЕ нажимайте ссылку ProjectDistributor на странице CodePlex ниже.
Однако Проект CodePlex для рисования пользовательских границ делает это очень просто. Просто создайте форму, используя SkinnedForm из этого проекта вместо стандартной формы, и она должна работать — вам действительно не нужно делать ничего другого в своем коде.
Обходной путь — просто выполните следующие действия:
- Установите
FormBorderStyleнаNone. - Накройте форму панелью и оставьте немного места для границы.
- Установите желаемый цвет границы в качестве цвета задней панели формы.
Теперь панель служит основным контейнером, и вы можете изменить фон по своему усмотрению, а форма служит границей.
Окончательный результат
Как упоминалось ранее, изменить фактический цвет границы сложно. Приведенное выше решение с панелью имеет ограничения, например, вы не можете изменить размер формы. Я нашел достаточно простой трюк без многих других ограничений.
- Создать форму
- Установите для FormBorderStyle значение None
- Добавьте 4 панели
- Установите цвет фона панелей на цвет границы, который вы хотите
- Прикрепите по одному к верхнему, нижнему, левому и правому краям
- Установите высоту (сверху/снизу) или ширину (слева/справа) в соответствии с толщиной границы, которую вы хотите. 2 или 3 выглядит очень хорошо.
Он выглядит как граница, он будет изменять размер вместе с окном, и вы можете вставить что угодно еще в форму, которую хотите. Ограничение в том, что вы должны сделать это самым первым, что вы добавите в форму.
Ниже «ForeColor» должен быть параметр «FormBorderStyle». Вы можете отредактировать его в VisualStudio 2015. Или вы можете перейти по пути панели управления, который должен быть примерно таким: «Панель управления\Внешний вид и персонализация\Персонализация», это будет второй параметр под названием «Цвет» может изменить его на желаемый цвет, он изменит цвет границы во всех программах на установленный вами цвет.
