Как сделать в windows 10 закругленные окна

Обновлено: 04.05.2024

В рамках уникального нового языка дизайна Windows 11 скругленные углы играют важную роль в оформлении и интерфейсе пользовательского интерфейса. Общее восприятие округления в системе формируется как программным округлением, управляемым ОПЕРАЦИОННОй системой, так и аппаратным округлением, контролируемым партнерами OEM. В этом разделе приводятся рекомендации майкрософт для партнеров OEM по округлениям аппаратной панели для достижения наилучшего взаимодействия с пользователем и разработчиком.

Хотя партнеры OEM могут различать свои аппаратные конструкции с различными свойствами округления оборудования и отображения, операционная система поддерживает только округление, которое поставляется с Windows 11. Мы не поддерживаем произвольные радии программного обеспечения, соответствующие произвольным радиям оборудования из-за высокой сложности в реализации системы, и чтобы избежать бремени для экосистемы разработчиков приложений для программирования на неограниченное количество комбинаций программного обеспечения и оборудования. Таким образом, этот раздел поможет вычислить эффективные пиксели, которые округление оборудования будет обрезать на основе коэффициента масштабирования дисплея, чтобы вы могли знать, какой диапазон аппаратных радий безопасно использовать без снижения уровня пользовательского интерфейса.

Все факторы масштабирования в этом разделе относятся к масштабированию классических приложений.

Округление программного обеспечения линейного масштабирования

Windows 11 поставляется с двумя радиями, доступными для округления — 4 пикселя для таких элементов управления, как кнопки и поля ввода, а также 8 пикселей для всплывающих меню и основных окон приложений. Для целей этого раздела радиус 8 пикселей является радиусом округления программного обеспечения по умолчанию.

Проектирование программного округления в Windows 11 основано на радиусе 8 пикселей на 96 точек на дюйм, и это линейно масштабируется, как показано в следующей таблице:

Коэффициент масштабирования DPI Скругленные пиксели окна
100 % 8
150% 12
200 % 16

Эта простая линейная связь служит для иллюстрации того, как Windows масштабирует округление, но в конечном счете, сколько обрезки происходит, зависит от собственного разрешения дисплея и коэффициента масштабирования. Например, отображение с коэффициентом масштабирования по умолчанию 200 % будет вырезать пользовательский интерфейс меньше, чем тот же дисплей, равный 100 %, так как 100 % сделает содержимое меньше по сравнению с предполагаемым 200 %. В этом примере отображение одного эффективного пикселя совпадает с одним физическим пикселем с 100 %, поэтому больше пикселей обрезается.

Вычисление коэффициента масштабирования по умолчанию Windows и эффективное разрешение

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

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

Плотность пикселей

Первая переменная в формуле коэффициента масштабирования по умолчанию, которая Windows должна знать, — это плотность пикселей на дюйм (DPI) дисплея. Это определяется следующей формулой и предопределено производителем дисплея:

Native DPI formula

Расстояние просмотра

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

Этот список не является исчерпывающим для всех возможных типов устройств.

Тип устройства Расстояние просмотра (в дюймах)
Маленький планшет 16,3
Tablet 20
Ноутбук 24,5
Рабочий стол 28
TV 84

Оптимальное масштабирование

Оптимальный масштаб — это точный десятичный уровень масштабирования, который Windows считает оптимальным для отображения. Это примерно соответствует коэффициенту масштабирования по умолчанию, который принимает оптимальный масштаб и округляется до ближайшего 25 % приращения в пределах заданного диапазона. Windows вычисляет оптимальный уровень масштабирования для отображения на основе собственного DPI и расстояния просмотра. Обратите внимание, что по умолчанию используется 96 DPI, а 28 — это расстояние просмотра по умолчанию в системе.

Optimal Zoom formula

Максимальный коэффициент масштабирования

Разрешение по вертикали Максимальный коэффициент масштабирования
< 900100 %
>= 900 и < 1080125%
>= 1080 и < 1440150%
>= 1440 и < 1800200 %
>= 1800 250%

Коэффициент масштабирования по умолчанию

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

Оптимальное масштабирование Коэффициент масштабирования по умолчанию
< 1.2100 %
>= 1,2 и < 1,43125%
>= 1,43 и < 1,78150%
>= 1,78 и < 2,32200 %
>= 2,32 и < максимальный коэффициент масштабирования250%
> Максимальный коэффициент масштабирования Максимальный коэффициент масштабирования

Вычисление эффективного разрешения

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

Effective Resolution formula

Пошаговое руководство. Измерение эффективных пикселей, обрезанных округленными аппаратными рамками

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

Свойство или вычисление Значение
Размер экрана 12,4 дюйма
Разрешение по горизонтали 2560
Разрешение по вертикали 1600
Собственный DPI 243.46
Расстояние просмотра 24,5 дюйма (тип ноутбука)
Оптимальное масштабирование 2.2
Максимальный коэффициент масштабирования 200 %
Коэффициент масштабирования по умолчанию 200 %
Радиус округления целевого объекта 2,2 мм

Круг, сформированный закругленными рамками

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

Rounded Corner Circle

Радиус для полного круга вычисляется с помощью следующей формулы:

Circle Radius formula

25,4 — это преобразование миллиметров в дюймы, так как дисплеи и DPI измеряются в дюймах, а округление радий измеряется в миллиметрах. В нашем примере отображается радиус 21,09 пикселей. Общая область этого круга определяется стандартной формулой круговой области:

Circle Area formula

В нашем примере круг скругленными рамками экрана имеет площадь 1395,84 пикселя.

Угловая квадрат

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

Side of Corner Square formula

Площадь этого квадрата определяется стандартной формулой квадратной площади:

Square Area formula

В нашем примере квадрат имеет длину стороны 42,17 пикселей и площадь 1778,51 пикселей.

Физические пиксели обрезаются на угол

С помощью радиуса окружности угла можно вычислить общую область, обрезанную этим кругом, и разделить на 4, чтобы получить пиксели, обрезанные в углу экрана.

Physical Pixels Clipped per Corner formula

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

Rounded Corner Area Clipped

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

Обрезанные эффективные пиксели

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

Effective Pixels Clipped formula

При использовании коэффициента масштабирования по умолчанию 200 %, это приводит к обрезке 47,72 epx в углу для нашего примера.

Рекомендуемый округление Радий

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

На основе внутреннего тестирования на устройстве с радиусом округления 3 мм рекомендуемый диапазон длины радиуса окружности угла, который работает с конструкцией округления Windows 11, составляет 16–24 эффективных пикселей (epx). Любой радиус выше этого диапазона может снизить пользовательский интерфейс и не поддерживается. Любой радиус ниже этого диапазона не создает проблемы обрезки пользовательского интерфейса, но может создать напряженность с концентричностью между углами округления дисплея и пользовательского интерфейса. Другими словами, разница между радиусом угла панели и радиусом округления окна начнет сильно отличаться и начнет влиять на визуальное восприятие пользователем системы.

Учитывая коэффициент масштабирования по умолчанию 200 %, пример отображения из нашего пошагового руководства имеет круг округления с эффективным радиусом 10,55 epx. Таким образом, пользовательский интерфейс не будет обрезан чрезмерно, но разница в округляющей угловой бетюне рамки и Windows 11 скругленными углами окна должны учитываться.


Microsoft никогда не прекращает тестировать новые проекты для Windows 10 и ее различных приложений, а Windows Terminal – одно из приложений, в котором то тут, то там происходит множество небольших изменений. Теперь похоже, что Windows Terminal может быть первым приложением, которое получит закругленные углы в Windows 10.

В течение последних нескольких месяцев мы сообщали о закругленных углах для компонентов пользовательского интерфейса верхнего уровня в Windows 10. Судя по ссылкам, обнаруженным в предварительных сборках, ясно, что Microsoft планирует сделать этот дизайн и сам язык является стандартом в Windows 10 с обновлением Sun Valley.

Изменения интерфейса были впервые случайно отмечены на скриншотах, опубликованных Microsoft в приложении «Советы» для Windows 10. Скрины, которые были удалены после нашего отчета, продемонстрировали приложение «Параметры Windows 10» с более современным внешним видом и закругленными углами, как показано ниже.


Теперь похоже, что приложение Windows Terminal также приобретает закругленные углы. Итак, что нас ждет? Как показано на скриншоте ниже, Microsoft, похоже, тестирует версию Windows Terminal с закругленными углами.


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

В настоящее время мы не знаем, является ли это изменение эксклюзивным для внутренних сборок Терминала или это ошибка. По слухам, некоторые приложения для почтовых ящиков (включая Терминал), возможно, получат закругленные углы с давно известным обновлением Sun Valley.

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

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

Слухи об обновлении Windows 10 Sun Valley

Согласно различным утечкам и отчетам, большое обновление Windows 10 под кодовым названием «Солнечная долина» выйдет во второй половине 2021 года. Согласно спискам вакансий, Microsoft работает над «радикальным визуальным обновлением возможностей Windows» и новым почтовым ящиком для Windows 10.

В отчетах также говорится, что Microsoft работает над меню «Пуск» с закругленными углами, которое будет плавать над панелью задач.


В Windows 10 Sun Valley Update Microsoft внесет несколько изменений в базовый дизайн операционной системы. Наиболее заметным изменением, влияющим на ваши приложения, является то, что окно (контейнер) для приложений Win32 и UWP теперь будет иметь закругленные углы – как и все остальное в приложениях на основе WinUI.

Закругленные углы – обычная часть мобильных операционных систем, но это не то, что вы легко найдете в Windows 10. После запуска Windows 10 все приложения, инструменты и другие страницы всегда имели квадратный или прямоугольный дизайн.

Предыдущие версии Windows, такие как Windows 7 и Vista, имели закругленные углы, но подход изменился, когда Microsoft перешла на свои пользовательские интерфейсы Metro с Windows 8, которые в значительной степени полагались на более прямой вид, острые края, живые плитки и приложения, удобные для касания элементы.

Однако недавно команда дизайнеров Microsoft решила отказаться от острых углов в пользу закругленных.

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


Как вы можете видеть на приведенном выше макете, Microsoft сокращает границы в таких приложениях, как Chromium Ege, чтобы заменить их гладкими закругленными углами. Чтобы улучшить впечатление от закругленных углов, Microsoft также изменит отступы для элементов управления окнами.

Microsoft также опубликовала макет Microsoft Teams и Outlook PWA для Windows с такими же закругленными краями и изменениями заполнения. Если присмотреться, углы окна приложения скруглены.


Текущая версия Microsoft Edge, Teams или Outlook имеет острые углы, что придает ей более формальный и современный вид. Этот новый внешний вид отличается от macOS, которая также использует закругленные углы в своем языке дизайна.

Контекстное меню с закругленными углами

В предварительных сборках Microsoft незаметно включила закругленные углы / края для контекстного меню (меню, вызываемого правой кнопкой мыши) в Представлении задач Windows 10.


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

Как вы видите в концепции ниже, Microsoft также изучает новые значки, шрифты и анимацию для приложений Windows.

В преддверии мероприятия 24 июня корпоративные приложения Microsoft, такие как инструменты Sysinternals, уже были обновлены кодом, который определяет предстоящие цвета / ресурсы темы ОС.



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



Функция поиска в Windows 10 уже имеет закругленный угол

Одно из самых больших изменений, над которыми Microsoft работает для Windows 10, - это переработанный пользовательский интерфейс, он в результате использования обновленного языка дизайна отказался бы от острых углов.
Закругленные углы рано или поздно будут доступны во всей Windows 10, но Microsoft, очевидно, постепенно переключается на новый вид, когда завершит тестирование более обновленных компонентов в операционной системе.

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

Это возможно только в Windows 10 May 2019 Update или в версии 1903, поэтому убедитесь, что ваше устройство уже обновлено до этой последней версии. Излишне говорить, что, поскольку совет включает в себя создание новых элементов реестра, вы должны сначала сделать резервную копию вашего устройства. Просто, чтобы убедиться, что вы можете восстановить его, если что-то пойдет не так.

По сути, все сводится к созданию трех разных записей. Поэтому сначала откройте редактор реестра, щелкнув меню «Пуск», а затем набрав regedit.exe. Затем выполните следующие шаги для создания этих записей:

Запись в реестре No 1
Перейдите в следующее место в редакторе реестра:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\
Щелкните правой кнопкой мыши на правой странице экрана и создайте новое 32-разрядное значение DWORD с именем:
ImmersiveSearch
Присвойте ему значение 1, и тогда вы сможете перейти к следующему шагу. Убедитесь, что вы не добавляете пробелы в названии записи.

Запись в реестре No 2
Теперь вам нужно перейти в следующее место, также в редакторе реестра:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\Flighting\
На этот раз вам нужно создать подраздел Flighting. Поэтому щелкните правой кнопкой мыши папку Flighting> New и назовите новый ключ:
Override
Еще раз, убедитесь, что вы не добавляете пробелы в конце имени.

Запись в реестре No 3
И, наконец, выберите недавно созданный ключ переопределения, а затем щелкните правой кнопкой мыши на правой панели, чтобы создать новое значение DWORD (32-разрядное значение) с именем:
ImmersiveSearchFull
Дважды щелкните ImmersiveSearchFull, чтобы изменить его значение, и введите 1 с помощью клавиатуры.

В том же месте создайте новый вид DWORD (32-битное значение) с именем:
CenterScreenRoundedCornerRadius
Сделайте то же самое, чтобы изменить его значение, но на этот раз введите 9.

Закругленные углы в поиске Windows 10

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

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

Само собой разумеется, что на данный момент, эта модернизация пользовательского интерфейса все еще находится на ранних стадиях, поэтому может потребоваться некоторое время, пока Microsoft не подготовит ее для наших устройств. Учитывая, что обновление 19H2, скорее всего, будет лишь незначительным обновлением, есть большая вероятность, что обновление функций весной 2020 года для Windows 10 представит этот долгожданный фейслифтинг пользовательского интерфейса.

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

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

The Notepad app on Windows 11 with rounded corners.

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

Если углы основного окна вашего приложения не скругляются автоматически, это связано с тем, что настроенные вами параметры рамки препятствуют скруглению. В контексте диспетчера окон рабочего стола (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.

Примеры

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

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

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

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

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

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

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

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

Читайте также: