Как закруглить кнопку в wpf
Перейти к содержимому

Как закруглить кнопку в wpf

  • автор:

Как скруглить углы у элемента WPF?

Возник вопрос, как закруглять углы элементов? Кнопок, Gryd`ов и т.д.
В целом, весьма распространённая задача, но без поллитра не разобраться.

К слову, насколько хорошая практика, пилить интерфейсы в Blend?

  • Вопрос задан более трёх лет назад
  • 28640 просмотров

Комментировать
Решения вопроса 1

makarenya

программист

Наиболее оптимальный способ — вручную прорисовывать шаблон элемента. Той же кнопки, к примеру.
Первая попавшаяся ссылка с вменяемым по размеру примером:
https://professorweb.ru/my/WPF/Template/level17/17.
Общая суть:
Нужно указать параметр Template у объекта, углы которого скруглять вздумали.
Это можно сделать как в примере на странице через ссылку на StaticResource, либо по месту, указав

Сам шаблон описывается элементом . Ну или не Button, а тот элемент, который вы хотите выдать.
Внутри вы можете нарисовать кнопку так, как вам того хочется. Можно , можно — на ваше усмотрение. Не забываете добавить , чтобы отобразить содержимое кнопки (её текст или любые другие элементы, которые на ней должны размещаться). В реальности вам придётся ещё впоследствии добавить раскраску в зависимости от состояния (активная, курсор наведён, курсор не наведён), и возможно анимацию перехода между этими состояниями!

Чтобы не делать это всё с нуля, часто бывает удобно скопировать стиль по-умолчанию с сайта майкрософт , а потом перкроить его на свой вкус.

Blend так ни разу и не довелось использовать. Всё-таки мне показалось более удобным работать с чистым кодом. Вся идея бленда заключалась на мой взгляд в том, чтобы посадить за него дизайнера, и чтобы последний выдавал на нём готовые для использования блоки. Программеру он ни к чему.

Как закруглить углы у Image в WPF?

Пытаюсь закруглить края у Image или сделать объект полностью круглым разными способами, включая использования RectangularGeometry и т. д., но картинка в итоге обрезается с правай и нижней сторон вместо закругления. При этом в Visual Studio все отображается нормально, проблема появляется только при сборке. Вот один из способов, которым я пытался реализовать закругление.

Вот так выглядит в IDE Вот так выглядит после запуска программы

Отслеживать

задан 1 мая 2022 в 14:58

1 2 2 бронзовых знака

ru.stackoverflow.com/a/1164862/220553 Margin=»75,79,675,655″ — это бред, не должно быть такого

1 мая 2022 в 14:59

Этот способ тоже пробовал, если копировать код полностью и кроме картинки ничего не менять, то работает, но если изменить размер (в моем случае 100×100 вместо 200×200) и переместить объект в нужное место в окне (поэтому там Margin), то картинка также обрезается.

1 мая 2022 в 15:02

Ну потому что вы обрезаете ее отступами, научитесь позиционировать объекты грамотно!

C# WPF ComboBox сделать круглым

Хочу сделать ComboBox немного закругленным, знаю что есть способ через стили, но я новенький в wpf, и не понимаю как изменить конкретно border у стиля combobox.

Отслеживать
задан 29 сен 2021 в 13:27
55 6 6 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

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

Берем комбобокс, например такой

В дизайнере окна правый клик по комбобоксу => Edit Template => Edit a Copy.

введите сюда описание изображения

В появившемся окне просто нажать OK

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

                                             >" Width="0"/>      " Height="" Width=""/> "/>     " BorderThickness="" BorderBrush="" Grid.ColumnSpan="2" IsChecked=">" Style=""/>  " IsReadOnly=">" Margin="" Style="" VerticalContentAlignment=""/>                        >" Width="0"/>      " Height="" Width=""/> "/>     " BorderThickness="" BorderBrush="" Grid.ColumnSpan="2" IsChecked=">" Style=""/> " Content="" ContentTemplateSelector="" ContentStringFormat="" HorizontalAlignment="" IsHitTestVisible="false" Margin="" SnapsToDevicePixels="" VerticalAlignment=""/>                  

Добавленный стиль сразу же подключится к комбобоксу

" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="200" Margin="5" SelectedIndex="0"> 

В этой добавленной куче надо найти вот эту строчку

" BorderThickness="" BorderBrush="" SnapsToDevicePixels="true"> 

И дописать в нее например CornerRadius=»3″

" BorderThickness="" BorderBrush="" SnapsToDevicePixels="true"> 

Получится вот такой эффект

введите сюда описание изображения

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

Как альтернативу, можно попробовать поискать готовые WPF UI библиотеки, по типу Metro или Material дизайна, там уже могут быть контролы, поддерживающие такую кастомизацию или уже готовые скругленные.

[WPF] Нужно закруглить углы у кнопки

Author24 — интернет-сервис помощи студентам

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

1 2 3
 TargetType="Button" x:Key="EclipceBorder">   >

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Закруглить углы MediaElement
Подскажите плиз как закруглить углы у MediaElement Пробовал через <Border.

Как закруглить углы у RichTextBox?
А точнее один из углов. Заранее спасибо

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

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

1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903

Лучший ответ

Сообщение было отмечено Yasha KS как решение

Решение

Yasha KS,

1 2 3 4 5 6 7 8 9 10 11 12 13 14
 TargetType="Button">  Property="Template"> >  TargetType="Button">  CornerRadius="20" Background="">  HorizontalAlignment="" VerticalAlignment=""/> > > > > >

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Закруглить углы многоугольника
помогите закруглить углы правильного многугольника. unit Unit1; interface uses .

Не получается закруглить углы в IE
https://www.cyberforum.ru/html/thread670310.html — у меня вопрос на ту же тему! в ишаке немогу.

Закруглить углы у ImageView
Здравствуйте! Подскажите как проще всего закруглить углы у ImageView?, лучше через xml, можно ли.

Как закруглить углы у ссылки
Здравствуйте. a < display: inline-block; padding: 20px 30px; border: 2px solid red;.

Или воспользуйтесь поиском по форуму:

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

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