как сделать скругленные углы в windows 10
Скругленные углы в Windows 10
Если вы любитель «минимализма» и вам нравится постоянно эксперементировать со своей системой, в таком случае, предлагаем узнать более подробно о том: «Что из себя могут представлять скругленные углы в Windows 10?» Ведь в современных реалиях модернизации софта разработанного компанией Майкрософт, есть некоторые новшества, которые уж точно не должны оставаться не замеченными большинством пользователей.
Если вы не догадались, то речь пойдет о том, что из себя представляет обновленный облик операционной системы Windows 10, которая постепенно начинает обновляться не в программном плане, а в плане визуальном, который имеет непосредственное отношение к уникальному интерфейсу «Fluent Design». Задумка использования данного интерфейса, кроется в том, что он имеет более плавные линии и скругленные углы. Все это, в своей совокупности, придает рабочей среде ОС более уникальный и интересный облик.
Как включить скругленные углы в Windows 10?
Для того, чтоб выполнить данные действия, необходимо быть внимательным и не более того, так как лог действий по настройке ОС в этом направлении, хоть и не является совсем простым, но и назвать его сложным, язык не поворачивается.
Для выполнения настройки своей ОС, вам потребуется: воспользоваться «Поиском» и с его помощью открыть «regedit.exe»:
Радиус угла
Начиная с версии 2.2 библиотеки пользовательского интерфейса Windows (WinUI), стиль по умолчанию для многих элементов управления обновлен для использования скругленных углов. Эти новые стили призваны вызывать энтузиазм и доверие, а также облегчать визуальную обработку интерфейса пользователями.
Ниже приведены два элемента управления «Кнопка»: первый без скругленных углов, второй — с использованием скругленного угла.
Винуи предоставляет обновленные стили для элементов управления Винуи и Platform. Дополнительные сведения о настройке скругленных углов см. в разделе Параметры настройки.
Некоторые элементы управления доступны как на платформе (Windows.UI.Xaml.Controls), так и в WinUI (Microsoft.UI.Xaml.Controls); например TreeView или ColorPicker. При использовании WinUI в приложении следует использовать версию элемента управления WinUI. При использовании с WinUI в версии платформы скругление углов может применяться непоследовательно.
Макеты элементов управления по умолчанию
Существуют три области элементов управления, в которых используются стили скругленных углов: прямоугольные элементы, всплывающие элементы и элементы панели.
Углы прямоугольных элементов пользовательского интерфейса
Элементы управления
Углы элементов пользовательского интерфейса всплывающего меню и наложения
Элементы управления
Элементы панели
Элементы управления
Параметры настройки
Значения радиусов углов по умолчанию, которые мы предоставляем, не окончательны. Вы можете изменить количество закруглений по углам, используя один из нескольких простых способов. Используйте два глобальных ресурса или свойство CornerRadius непосредственно в элементе управления в зависимости от необходимой степени детализации пользовательской настройки.
Когда не следует закруглять
Существуют экземпляры, в которых угол элемента управления не должен закругляться, и мы не будем закруглять их по умолчанию.
Изменения CornerRadius на уровне страницы или приложения
Существует 2 ресурса приложения, которые управляют радиусом углов всех элементов управления:
Переопределение значения этих ресурсов в какой бы то ни было области соответствующим образом повлияет на все элементы управления в этой области.
Это означает, что если вы хотите изменить округлость всех элементов управления, к которым ее можно применить, вы можете определить оба ресурса на уровне приложений с помощью таких новых значений CornerRadius:
Кроме того, если вы хотите изменить закругление всех элементов управления в определенной области, например на уровне страницы или контейнера, можно следовать подобному шаблону:
Чтобы изменения вступили в силу, ресурс OverlayCornerRadius следует определить на уровне приложения.
Это происходит потому, что всплывающее окно и всплывающие окна не находятся в визуальном дереве страницы, они добавляются в корень всплывающего окна. Система разрешения ресурсов неправильно проходит по визуальному дереву всплывающего окна в визуальное дерево страницы.
Изменения для каждого элемента управления CornerRadius
Чтобы изменить скругление только выбранного числа элементов управления, можно изменить свойство CornerRadius непосредственно на элементах управления.
Значение по умолчанию | Измененное свойство |
---|---|
Создание пользовательских стилей на основе WinUI
Вы можете создавать пользовательские стили на основе стилей WinUI с закругленными углами, указав корректный атрибут BasedOn в своем стиле. Например, чтобы создать пользовательский стиль кнопки на основе стиля кнопки WinUI, сделайте следующее:
Как правило, стили элементов управления WinUI следуют согласованному порядку именования: «DefaultXYZStyle», где «XYZ» — это имя элемента управления. Полную справку можно найти в файлах XAML в репозитории WinUI.
В Windows 10, версия 21H2 (Sun Valley) меню панели задач получит скругленные углы
Те скриншоты, которые мы уже видели, соответствуют современной операционной системе с унифицированным интерфейсом. Меню «Пуск», список приложений, уведомления и центр действий, а также некоторые другие элементы стали более привлекательными и строго соответствуют общей дизайнерской концепции. На днях в твиттере пользователь под ником TheXamlGuy опубликовал изображение нового меню панели задач.
При изучении данного скриншота сразу бросается в глаза, что список быстрого перехода панели задач получил скругления. Согласно внутренним источника, список переходов на изображении аналогичен запланированному Microsoft.
Масштабная цель «Sun Valley» — модернизация внешнего вида операционной системы. В рамках данного проекта Microsoft стремится создать единый современный интерфейс. Закругленные углы и общий дизайн списка переходов на панели задач хорошо сочетаются с уведомлениями и центром действий, меню «Пуск» и другими элементами обновления.
Зак Боуден (Zac Bowden) из Windows Central так прокомментировал визуальные улучшения:
Что касается меню «Пуск», я знаю, что Microsoft работает над округлением «острых» элементов пользовательского интерфейса, таких как углы вокруг живых плиток и в самом меню «Пуск». Ожидается, что контекстные меню и списки переходов в меню «Пуск» и на панели задач получат закругленные углы, как и большинство современных приложений.
Боуден продемонстрировал список переходов панели задач еще в феврале, но на тот момент дизайн Sun Valley еще не был окончательно доработан.
Пользователи Windows 10 годами просили улучшить интерфейс системы. Разрозненные меню, устаревший дизайн и другие странные элементы теперь, похоже, наконец исчезнут из операционной системы Microsoft.
Интерфейс с закругленными углами в Windows 10 версии 1903
Функция поиска в Windows 10 уже имеет закругленный угол
Поиск в 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. В Windows 11 система автоматически скругляет углы окон верхнего уровня для всех предустановленных приложений, включая все приложения UWP, и большинства других приложений. Но в некоторых приложениях Win32 окна могут не скругляться. В этой статье объясняется, как применить скругление углов главного окна приложения Win32, если система не делает это автоматически.
По умолчанию скругление в приложениях не применяется при максимальном развертывании и прикреплении окон, а также при работе на виртуальной машине, в Виртуальном рабочем столе Windows (WVD) и в окне Application Guard в Windows Defender (WDAG).
Почему в моем приложении не скруглены углы?
Если углы основного окна вашего приложения не скругляются автоматически, это связано с тем, что настроенные вами параметры рамки препятствуют скруглению. В контексте диспетчера окон рабочего стола (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. Он проинформирует систему о том, что углы этого окна должны быть скруглены, даже если это не соответствует политике скругления по умолчанию.