Как изменить цвет рамки окна windows forms

  • C#

мне нужно изменить цвет верхней границы с кнопками на свой, убрать кнопку «открыть в полный экран» и желательно это тонкое красное обрамление тоже убрать. Как это сделать?


  • Вопрос задан

  • 2137 просмотров



2

комментария


Подписаться

2



Простой


2

комментария

  • часть ответа — синтакс Powershell — из разных скриптов…

    $f = New-Object System.Windows.Forms.Form
     $f.MaximizeBox = $f.MinimizeBox = $false
     $f.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::Sizable
    $f.BorderStyle = [System.Windows.Forms.BorderStyle]::FixedSingle

  • Проще создать своё окно. Отключить FormBorderStyle (None). Повесить panel закрепить её вверу dock = top.
    У panel повесить обработчики на MouseMove и при клике вызывать PostMessage c WM_SYSCOMMAND и DOMOVE.
    Так же добавить возможность ресайза окна при MouseMove с кликом вызывать PostMessage с соответствующими параметрами.

Пригласить эксперта


Ваш ответ на вопрос

Войдите, чтобы написать ответ


Похожие вопросы


  • Показать ещё
    Загружается…

Минуточку внимания

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.

Реклама

Распознавание голоса и речи на C#

UnmanagedCoder 05.05.2025

Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .

Реализация своих итераторов в C++

NullReferenced 05.05.2025

Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .

Разработка собственного фреймворка для тестирования в C#

UnmanagedCoder 04.05.2025

C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .

Распределенная трассировка в Java с помощью OpenTelemetry

Javaican 04.05.2025

Микросервисная архитектура стала краеугольным камнем современной разработки, но вместе с ней пришла и головная боль, знакомая многим — отслеживание прохождения запросов через лабиринт взаимосвязанных. . .

Шаблоны обнаружения сервисов в Kubernetes

Mr. Docker 04.05.2025

Современные Kubernetes-инфраструктуры сталкиваются с серьёзными вызовами. Развертывание в нескольких регионах и облаках одновременно, необходимость обеспечения низкой задержки для глобально. . .

Создаем SPA на C# и Blazor

stackOverflow 04.05.2025

Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .

Реализация шаблонов проектирования GoF на C++

NullReferenced 04.05.2025

«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .

C# и сети: Сокеты, gRPC и SignalR

UnmanagedCoder 04.05.2025

Сетевые технологии не стоят на месте, а вместе с ними эволюционируют и инструменты разработки. В . NET появилось множество решений — от низкоуровневых сокетов, позволяющих управлять каждым байтом. . .

Создание микросервисов с Domain-Driven Design

ArchitectMsa 04.05.2025

Архитектура микросервисов за последние годы превратилась в мощный архитектурный подход, который позволяет разрабатывать гибкие, масштабируемые и устойчивые системы. А если добавить сюда ещё и. . .

Многопоточность в C++: Современные техники C++26

bytestream 04.05.2025

C++ долго жил по принципу «один поток — одна задача» — как старательный солдатик, выполняющий команды одну за другой. В то время, когда процессоры уже обзавелись несколькими ядрами, этот подход стал. . .

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Основные свойства форм

Последнее обновление: 31.10.2015

С помощью специального окна Properties (Свойства) справа Visual Studio предоставляет нам удобный интерфейс для управления свойствами элемента:

Большинство этих свойств оказывает влияние на визуальное отображение формы. Пробежимся по основным свойствам:

  • Name: устанавливает имя формы — точнее имя класса, который наследуется от класса Form

  • BackColor: указывает на фоновый цвет формы. Щелкнув на это свойство, мы сможем выбрать тот цвет, который нам подходит
    из списка предложенных цветов или цветовой палитры

  • BackgroundImage: указывает на фоновое изображение формы

  • BackgroundImageLayout: определяет, как изображение, заданное в свойстве BackgroundImage, будет располагаться на форме.

  • ControlBox: указывает, отображается ли меню формы. В данном случае под меню понимается меню самого верхнего уровня, где
    находятся иконка приложения, заголовок формы, а также кнопки минимизации формы и крестик. Если данное свойство имеет значение false, то мы не увидим
    ни иконку, ни крестика, с помощью которого обычно закрывается форма

  • Cursor: определяет тип курсора, который используется на форме

  • Enabled: если данное свойство имеет значение false, то она не сможет получать ввод от пользователя, то есть мы не сможем
    нажать на кнопки, ввести текст в текстовые поля и т.д.

  • Font: задает шрифт для всей формы и всех помещенных на нее элементов управления. Однако, задав у элементов формы свой шрифт,
    мы можем тем самым переопределить его

  • ForeColor: цвет шрифта на форме

  • FormBorderStyle: указывает, как будет отображаться граница формы и строка заголовка. Устанавливая данное свойство в None
    можно создавать внешний вид приложения произвольной формы

  • HelpButton: указывает, отображается ли кнопка справки формы

  • Icon: задает иконку формы

  • Location: определяет положение по отношению к верхнему левому углу экрана, если для свойства StartPosition
    установлено значение Manual

  • MaximizeBox: указывает, будет ли доступна кнопка максимизации окна в заголовке формы

  • MinimizeBox: указывает, будет ли доступна кнопка минимизации окна

  • MaximumSize: задает максимальный размер формы

  • MinimumSize: задает минимальный размер формы

  • Opacity: задает прозрачность формы

  • Size: определяет начальный размер формы

  • StartPosition: указывает на начальную позицию, с которой форма появляется на экране

  • Text: определяет заголовок формы

  • TopMost: если данное свойство имеет значение true, то форма всегда будет находиться поверх других окон

  • Visible: видима ли форма, если мы хотим скрыть форму от пользователя, то можем задать данному свойству значение
    false

  • WindowState: указывает, в каком состоянии форма будет находиться при запуске: в нормальном, максимизированном или минимизированном

Программная настройка свойств

С помощью значений свойств в окне Свойства мы можем изменить по своему усмотрению внешний вид формы, но все то же самое мы можем сделать
динамически в коде. Перейдем к коду, для этого нажмем правой кнопкой мыши на форме и выберем в появившемся контекстном меню View Code (Просмотр кода). Перед нами открывается файл кода
Form1.cs. Изменим его следующим образом:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace HelloApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Text = "Hello World!";
            this.BackColor = Color.Aquamarine;
            this.Width = 250;
            this.Height = 250;
        }
    }
}

В данном случае мы настроили несколько свойств отображения формы: заголовок, фоновый цвет, ширину и высоту.
При использовании конструктора формы надо учитывать, что весь остальной код должен идти после вызова метода InitializeComponent(), поэтому все установки свойств
здесь расположены после этого метода.

Установка размеров формы

Для установки размеров формы можно использовать такие свойства как Width/Height или Size. Width/Height принимают числовые значения, как в вышеприведенном
примере. При установке размеров через свойство Size, нам надо присвоить свойству объект типа Size:

this.Size = new Size(200,150);

Объект Size в свою очередь принимает в конструкторе числовые значения для установки ширины и высоты.

Начальное расположение формы

Начальное расположение формы устанавливается с помощью свойства StartPosition, которое может принимать одно из следующих значений:

  • Manual: Положение формы определяется свойством Location

  • CenterScreen: Положение формы в центре экрана

  • WindowsDefaultLocation: Позиция формы на экране задается системой Windows, а размер определяется свойством Size

  • WindowsDefaultBounds: Начальная позиция и размер формы на экране задается системой Windows

  • CenterParent: Положение формы устанавливается в центре родительского окна

Все эти значения содержатся в перечислении FormStartPosition, поэтому, чтобы, например, установить форму в центре экрана, нам надо прописать
так:

this.StartPosition = FormStartPosition.CenterScreen;

Фон и цвета формы

Чтобы установить цвет как фона формы, так и шрифта, нам надо использовать цветовое значение, хранящееся в структуре Color:

this.BackColor = Color.Aquamarine;
this.ForeColor = Color.Red;

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

this.BackgroundImage = Image.FromFile("C:\\Users\\Eugene\\Pictures\\3332.jpg");

Чтобы должным образом настроить нужное нам отображение фоновой картинки, надо использовать свойство BackgroundImageLayout,
которое может принимать одно из следующих значений:

  • None: Изображение помещается в верхнем левом углу формы и сохраняет свои первоначальные значения

  • Tile: Изображение располагается на форме в виде мозаики

  • Center: Изображение располагается по центру формы

  • Stretch: Изображение растягивается до размеров формы без сохранения пропорций

  • Zoom: Изображение растягивается до размеров формы с сохранением пропорций

Например, расположим форму по центру экрана:

 this.StartPosition = FormStartPosition.CenterScreen;

C# Windows Form Изменение цвета рамки для FormWindowState Normal и Maximized

        public Form1()
        {
            InitializeComponent();
        }
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
 
            if (WindowState == FormWindowState.Normal)
            {
                //if (!Focused)
                //{
                //    using (Pen borderPen = new Pen(Color.FromArgb(86, 4, 55), 1))
                //    {
                //        Rectangle borderRect = new Rectangle(ClientRectangle.Left, ClientRectangle.Top, ClientRectangle.Width - 1, ClientRectangle.Height - 1);
                //        e.Graphics.DrawRectangle(borderPen, borderRect);
                //    }
                //}
                //else
                //{
                using (Pen borderPen = new Pen(Color.FromArgb(255, 0, 121, 203), 1))
                    {
                        Rectangle borderRect = new Rectangle(ClientRectangle.Left, ClientRectangle.Top, ClientRectangle.Width - 1, ClientRectangle.Height - 1);
                        e.Graphics.DrawRectangle(borderPen, borderRect);
                    }
                //}
            }
            else if (WindowState == FormWindowState.Maximized)
            {
                using (Pen borderPen = new Pen(Color.FromArgb(255, 66, 66, 69), 1))
                {
                    Rectangle borderRect = new Rectangle(ClientRectangle.Left, ClientRectangle.Top, ClientRectangle.Width - 1, ClientRectangle.Height - 1);
                    e.Graphics.DrawRectangle(borderPen, borderRect);
                }
            }
        }
        protected override void OnResize(EventArgs e)
        {
            base.OnResize(e);
            if (WindowState == FormWindowState.Normal || WindowState == FormWindowState.Maximized)
            {
                Invalidate();
            }
        }

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Можно ли установить гифку на рабочий стол windows 10
  • Дата создания windows millennium edition me
  • Как переключить раскладку клавиатуры на windows 10
  • Как переименовать себя в windows 10
  • Где посмотреть все характеристики компьютера на windows 10