круглая кнопка windows forms

Как создать кнопку с закругленными углами/краями на Winform С#?

Хорошо, я буду помещать изображение на кнопку, и это изображение имеет закругленные углы. Как это сделать? Я искал поиски в Интернете и искал часы, но мне все равно не повезло.

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

Или просмотрите эти статьи:

Однако вы также можете использовать WPF, если хотите более приятный макет, но он несколько отличается от форм Windows.

Вы можете использовать форму прямоугольника из Microsoft Visual Basic PowerPacks.

Я проверил, что он работает в проекте форм Windows С# в VS2013 Express для Windows Desktop на Windows7 x64, ориентированном как на x86, так и на x64.

круглая кнопка windows forms

Для удобства вы можете добавить новую вкладку Toolbox и добавить к ней элементы управления VB PP.

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

1. должен иметь визуальную студию, создать новый проект
2. выберите новую форму окна в качестве нового проекта
3. добавьте 2 x кнопки в форму
4. дважды щелкните в любом месте формы, чтобы открыть окно кода
5. удалите весь код, включая верхние заголовки Form1, и вставьте ниже

вызов функции “buttonBorderRadius (отправитель, 50)” означает, что вы можете установить разные borderRadius для отдельных кнопок.
и поскольку он использует объект, вы можете применить ту же функцию к изображениям и другим элементам управления (не все)

поэтому вы можете установить радиус границы 10 пикселей с помощью “buttonBorderRadius (отправитель, 10)”,
и радиус 50 пикселей, подобный этой “buttonBorderRadius (отправитель, 50)”,
просто измените целое число как 2-й аргумент в функции,
и первый аргумент должен быть переменной объекта

Источник

Круглая кнопка windows forms

Профиль
Группа: Участник
Сообщений: 36
Регистрация: 23.3.2008

Репутация: нет
Всего: нет

Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
круглая кнопка windows formsкруглая кнопка windows formsкруглая кнопка windows formsкруглая кнопка windows forms

Профиль
Группа: Модератор
Сообщений: 5817
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 141

Профиль
Группа: Участник
Сообщений: 36
Регистрация: 23.3.2008

Репутация: нет
Всего: нет

Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
круглая кнопка windows formsкруглая кнопка windows formsкруглая кнопка windows formsкруглая кнопка windows forms

Профиль
Группа: Модератор
Сообщений: 5817
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 141

Эксперт
круглая кнопка windows formsкруглая кнопка windows formsкруглая кнопка windows formsкруглая кнопка windows forms

Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118

Цитата(diadiavova @ 23.3.2014, 16:47 круглая кнопка windows forms)
Это сделано на WPF, там это называется Expander.

ну то что на скрине уж явно не на WPF, не надо нам тут рассказывать.

круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms круглая кнопка windows forms

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »

[ Время генерации скрипта: 0.1031 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Закругленные края в кнопке C# (WinForms)

круглая кнопка windows forms

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

проблема, с которой я сталкиваюсь,-это «синяя подсветка» кнопки: она отображается на большей части кнопки, но не отображается на закругленных краях, поэтому моя кнопка частично подсвечена и частично не подсвечена (по краям). Что я мог сделать, чтобы решить эту проблему? Спасибо.

PS: Я не могу использовать WPF. Приложение предназначено для очень старого компьютера;, пожалуйста,не предлагай. Кроме того, у клиента нет денег на новый компьютер.

3 ответов

это быстро, вы можете настроить вещи и оптимизировать довольно много деталей..

очевидно, поскольку у нас есть класс, мы можем кэшировать GraphicsPath в переменной класса. И конечно, ты выбираешь цвет..

круглая кнопка windows forms

вы можете использовать WebBrowser, сделать кнопку с HTML и CSS, а затем использовать webbrowser.DocumentText = «your html»;

кроме как покрасить его самостоятельно, я не думаю, что есть что-то, что вы можете сделать. Логика базовой кнопки paint не записывается как «показать синюю подсветку вокруг такой-то части любой области окна». Вместо этого он написан с типом региона, который он ожидает-прямоугольный. Таким образом, базовая краска всегда будет рисовать прямоугольное изображение в обрезанной форме. У вас будет более легкое время таких вещей в WPF.

Источник

Применение скругленных углов в классических приложениях для Windows 11

Скругленные углы — это самая заметная особенность в геометрическом оформлении интерфейса Windows 11. В Windows 11 система автоматически скругляет углы окон верхнего уровня для всех предустановленных приложений, включая все приложения UWP, и большинства других приложений. Но в некоторых приложениях Win32 окна могут не скругляться. В этой статье объясняется, как применить скругление углов главного окна приложения Win32, если система не делает это автоматически.

По умолчанию скругление в приложениях не применяется при максимальном развертывании и прикреплении окон, а также при работе на виртуальной машине, в Виртуальном рабочем столе Windows (WVD) и в окне Application Guard в Windows Defender (WDAG).

круглая кнопка windows forms

Почему в моем приложении не скруглены углы?

Если углы основного окна вашего приложения не скругляются автоматически, это связано с тем, что настроенные вами параметры рамки препятствуют скруглению. В контексте диспетчера окон рабочего стола (DWM), приложения делятся на три основные категории:

Приложения, в которых скругление применяется по умолчанию.

К ним относятся приложения, которым требуется полноценная предоставленная системой рамка и элементы управления заголовками (кнопки свертывания, развертывания и закрытия), например «Блокнот». Сюда также входят приложения, которые предоставляют системе достаточно информации, чтобы она могла правильно скруглить углы, например задать стили окна WS_THICKFRAME и WS_CAPTION или предоставить границу неклиентской области шириной в 1 пиксель, которую система может использовать для скругления углов.

Приложения, в которых скругление не применено в соответствии с политикой, но в которых это можно сделать.

Приложения этой категории обычно самостоятельно настраивают большую часть рамки окна, но им по-прежнему требуется отображаемая системой граница и тень (например, Microsoft Office). Если в вашем приложении скругление не применяется в соответствии с политикой, это может быть вызвано одной из следующих причин:

Изменение в одном из этих пунктов приведет к нарушению автоматического скругления. Хотя мы старались скруглить углы как можно большего количества приложений с помощью нашей системной эвристики, есть некоторые комбинации настроек, которые мы не можем предсказать. Для таких случаев мы предусмотрели API, позволяющий предоставить согласие вручную. Если вы устраните эти проблемы в приложении или вызовете API предоставления согласия, как описано в следующем разделе, система сможет применить скругление. Но обратите внимание, что API является указанием для системы и не гарантирует скругление в зависимости от настроек.

Приложения, для которых нельзя применить скругление, даже если они вызывают API предоставления согласия.

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

Например, приложение может размещать прозрачные пиксели вокруг главного окна путем альфа-наложения для каждого пикселя для достижения эффекта настраиваемой тени. В результате окно теряет прямоугольную форму и система не может скруглить углы.

Как предоставить согласие на скругление углов

определения API

Если в приложении не применяется скругление в соответствии с политикой, при необходимости можно вызвать наш новый API, чтобы для вашего приложения можно было предоставить согласие на скругление углов. Этот API выражается как значения перечисления, которые должны передаваться в API DwmSetWindowAttribute, как показано в новом перечислении DWM_WINDOW_CORNER_PREFERENCE. Перечисление DWM_WINDOW_CORNER_PREFERENCE определено в заголовке dwmapi.h и доступно в последней версии пакета SDK Insider Preview.

Значение перечисленияОписание
DWMWCP_DEFAULTСистема определяет, следует ли скруглять углы окон.
DWMWCP_DONOTROUNDСкругление не применяется.
DWMWCP_ROUNDСкругление применяется, если это уместно.
DWMWCP_ROUNDSMALLСкругление с небольшим радиусом применяется, если это уместно.

Указатель на соответствующее значение из этого перечисления передается третьему параметру функции DwmSetWindowAttribute. Для второго параметра, который указывает, какой атрибут задается, передайте новое значение DWMWA_WINDOW_CORNER_PREFERENCE, определенное в перечислении DWMWINDOWATTRIBUTE.

Приложения C#

Примеры

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

Для краткости и ясности в этих примерах обработка ошибок исключена.

Пример 1. Скругление углов главного окна приложения в C# — WPF

Чтобы вызвать DwmSetWindowAttribute в классическом приложении C# WPF, необходимо импортировать dwmapi.dll и сигнатуру функции DwmSetWindowAttribute с использованием P/Invoke. Сначала необходимо переопределить необходимые значения перечисления из собственного заголовка dwmapi.h, а затем объявить функцию с использованием типов C#, эквивалентных исходной собственной функции. Так как оригинал принимает указатель на третий параметр, обязательно используйте ключевое слово ref, чтобы можно было передать адрес переменной при вызове функции. Это можно сделать в классе MainWindow в MainWindow.xaml.cs.

Затем в конструкторе MainWindow после вызова InitializeComponent создайте новый экземпляр класса WindowInteropHelper, чтобы получить указатель на базовый дескриптор окна (HWND). Обязательно используйте метод EnsureHandle, чтобы система создала HWND для окна перед его отображением, так как обычно система делает это только после выхода из конструктора.

Пример 2. Скругление углов главного окна приложения в C# — WinForms

Как и в случае с WPF, для приложения WinForms сначала необходимо импортировать dwmapi.dll и сигнатуру функции DwmSetWindowAttribute с использованием P/Invoke. Это можно сделать в основном классе Form.

Вызов DwmSetWindowAttribute также соответствует вызову в приложении WPF, но при этом вам не нужно использовать вспомогательный класс для получения HWND, так как это просто свойство Form. Вызовите эту функцию из конструктора Form после вызова InitializeComponent.

Пример 3. Скругление углов главного окна приложения в C++

Для собственного приложения C++ можно вызвать DwmSetWindowAttribute в функции обработки сообщений после создания окна, чтобы система применила скругление.

Пример 4. Скругление углов меню с небольшим радиусом — С++

По умолчанию меню — это всплывающие окна, углы которых не скругляются. Если приложение создает пользовательское меню и вы хотите, чтобы оно соответствовало политике скругления для других стандартных меню, можно вызвать API. Он проинформирует систему о том, что углы этого окна должны быть скруглены, даже если это не соответствует политике скругления по умолчанию.

Источник

Элементы управления

Элементы управления представляют собой визуальные классы, которые получают введенные пользователем данные и могут инициировать различные события. Все элементы управления наследуются от класса Control и поэтому имеют ряд общих свойств:

Anchor : Определяет, как элемент будет растягиваться

BackColor : Определяет фоновый цвет элемента

BackgroundImage : Определяет фоновое изображение элемента

ContextMenu : Контекстное меню, которое открывается при нажатии на элемент правой кнопкой мыши. Задается с помощью элемента ContextMenu

Cursor : Представляет, как будет отображаться курсор мыши при наведении на элемент

Dock : Задает расположение элемента на форме

Enabled : Определяет, будет ли доступен элемент для использования. Если это свойство имеет значение False, то элемент блокируется.

Font : Устанавливает шрифт текста для элемента

ForeColor : Определяет цвет шрифта

Location : Определяет координаты верхнего левого угла элемента управления

Name : Имя элемента управления

Size : Определяет размер элемента

Width : ширина элемента

Height : высота элемента

TabIndex : Определяет порядок обхода элемента по нажатию на клавишу Tab

Tag : Позволяет сохранять значение, ассоциированное с этим элементом управления

Кнопка

Наиболее часто используемым элементом управления является кнопка. Обрабатывая событие нажатия кнопки, мы может производить те или иные действия.

Оформление кнопки

Чтобы управлять внешним отображением кнопки, можно использовать свойство FlatStyle. Оно может принимать следующие значения:

Изображение на кнопке

Overlay : текст накладывается на изображение

ImageAboveText : изображение располагается над текстом

TextAboveImage : текст располагается над изображением

ImageBeforeText : изображение располагается перед текстом

TextBeforeImage : текст располагается перед изображением

Например, установим для кнопки изображение. Для этого выберем кнопку и в окне Свойств нажмем на поле Image (не путать с BackgroundImage). Нам откроется диалоговое окно установи изображения:

круглая кнопка windows forms

круглая кнопка windows forms

круглая кнопка windows forms

Клавиши быстрого доступа

Кнопки по умолчанию

Форма, на которой размещаются все элементы управления, имеет свойства, позволяющие назначать кнопку по умолчанию и кнопку отмены.

Так, свойство формы AcceptButton позволяет назначать кнопку по умолчанию, которая будет срабатывать по нажатию на клавишу Enter.

Источник

Добавить комментарий

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