Groupbox c wpf как убрать границы
Перейти к содержимому

Groupbox c wpf как убрать границы

  • автор:

Элемент Border

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

Далее приведен простой пример использования Border

          

Border абсолютно невидим, пока вы не определите кисть фона или границы и толщину линии, как и было сделано в примере, с использованием Background, BorderBrush и BorderThickness .

Border с закругленными углами

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

          

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

Цвет и толщина границы

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

          

Фон Border

Свойство Background типа Brush открывает много замечательных возможностей. Как видно из начального примера, очень легко использовать сплошной фон, но вы также можете использовать градиент, и это не сложно:

                

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

This article has been fully translated into the following languages:

Is your preferred language not on the list? Click here to help us translate this article into your language!

Groupbox c wpf как убрать границы

Элементы WPF обладают набором свойств, которые помогают позиционировать данные элементы. Рассмотрим некоторые из этих свойств.

Ширина и высота

У элемента можно установить ширину с помощью свойства Width и высоту с помощью свойства Height . Эти свойства принимают значение типа double . Хотя общая рекомендация состоит в том, что желательно избегать жестко закодированных в коде ширины и высоты.

Также мы можем задать возможный диапазон ширины и высоты с помощью свойств MinWidth/MaxWidth и MinHeight/MaxHeight . И при растяжении или сжатии контейнеров элементы с данными заданными свойствами не будут выходить за пределы установленных значений.

Возможно, возникает вопрос, а в каких единицах измерения устанавливаются ширина и высота? Да и в общем какие единицы измерения используются? В WPF можно использовать несколько единиц измерения: сантиметры ( cm ), точки ( pt ), дюймы ( in ) и пиксели ( px ). Например, зададим размеры в других единицах:

Если единица измерения не задана явно, а просто стоит число, то используются по умолчанию пиксели. Но эти пиксели не равны обычным пикселям, а являются своего рода «логическими пикселями», независимыми от конкретного устройства. Каждый такой пиксель представляет 1/96 дюйма вне зависимости от разрешения экрана.

Выравнивание

HorizontalAlignment

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

Свойство HorizontalAlignment выравнивает элемент по горизонтали относительно правой или левой стороны контейнера и соответственно может принимать значения Left, Right, Center (положение по центру), Stretch (растяжение по всей ширине). Например:

Свойство HorizontalAlignment в WPF

VerticalAlignment

Также мы можем задать для элемента выравнивание по вертикали с помощью свойства VerticalAlignment , которое принимает следующие значения: Top (положение в верху контейнера), Bottom (положение внизу), Center (положение по центру), Stretch (растяжение по всей высоте). Например:

Свойство VerticalAlignment в WPF

Отступы margin

Свойство Margin устанавливает отступы вокруг элемента. Синтаксис: Margin=»левый_отступ верхний_отступ правый_отступ нижний_отступ». Например, установим отступы у одной кнопки слева и сверху, а у другой кнопки справа и снизу:

Свойство Margin в WPF

Если мы зададим свойство таким образом: Margin=»20″, то сразу установим отступ для всех четырех сторон.

Panel.ZIndex

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

По умолчанию для всех создаваемых элементов Panel.ZIndex=»0″ . Однако назначив данному свойству более высокое значение, мы можем передвинуть его на передний план. Элементы с большим значением этого свойства будут перекрывать те элементы, у которых меньшее значение этого свойства:

    

Элемент GroupBox

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

Обратите внимание на рамку вокруг других элементов, содержащую текст «GroupBox Sample», проходящий по линии рамки — вот так выглядит и работает элемент GroupBox. Использование элемента GroupBox довольно просто и похоже на добавление ярлычка к вашему окну и какого-либо значащего текста в свойство Header:

Элемент GroupBox может содержать только один дочерний элемент, но это не вызывает проблем, так как вы можете добавить элемент Panel и уже в него остальные элементы, как, например, в диалоговом окне, представленном выше. Вот полный код XAML для этого примера диалога:

 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfTutorialSamples.Misc_controls"
mc:Ignorable="d"
Title="GroupBoxSample" Height="220" Width="300">



First name:

Last name:

Элемент GroupBox с произвольным заголовком

Заголовок элемента GroupBox обычно представляет собой простой, неформатированный текст, но что делать, если вы захотите сделать его покрасивее? Нет проблем, потому что, как и почти всё в WPF framework, вы можете заменить текст одним или несколькими другими элементами. Так, вы можете добавить элемент TextBlock и изменить его форматирование, например, цвет текста. Вы даже сможете, если захотите, добавить картинку, как это сделал я в следующем примере:

Теперь заголовок содержит картинку и жирный текст, и это так просто сделать:

 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfTutorialSamples.Misc_controls"
mc:Ignorable="d"
Title="GroupBoxSample" Height="220" Width="300">





GroupBox Sample

First name:

Last name:

Обратите внимание, что я просто заменил свойство Header элемента на тэг GroupBox.Header, содержащий элемент StackPanel, который в свою очередь содержит элементы Image и TextBlock. В результате мы получили полный контроль внешнего вида заголовка!

Заключение

Элемент WPF GroupBox упрощает группировку связанных элементов, что визуально напоминает внешний вид элементов операционной системы Windows.

This article has been fully translated into the following languages:

Is your preferred language not on the list? Click here to help us translate this article into your language!

Скрыть все кнопки в GroupBox

Доброго времени суток всем читающим!
Сразу предупреждаю, что я новичок и ещё только осваиваю все прелести C#. Если ошибка слишком очевидна — не кидайтесь тапками слишком сильно.
Мне необходимо при нажатии определённой кнопки скрыть в определённом GroupBox все находящиеся в нём кнопки
Пытался сделать это через foreach следующим образом:

1 2 3 4 5
private void button81_Click(object sender, EventArgs e) foreach (Button button in groupBoxPL1.Controls.OfTypeGroupBox>()) { button.Visible = false; }

Однако этот цикл не работает, и при нажатии на кнопку ничего не происходит. Пробовал и другой способ (следующий код я нашёл в интернете)

1 2 3 4 5 6 7 8 9 10 11 12 13
private void button81_Click(object sender, EventArgs e) { foreach (Control control in Controls) { if(control is GroupBox) { foreach(Control ctrl in (control as GroupBox).Controls) { ctrl.Visible = false; } } } }

Этот код работает частично: он скрывает кнопки только в одном GroupBox (у меня в форме их всего два) и то не в том, в котором мне нужно (он скрывает их в groupBox1, который я ещё не успел переименовать, а мне нужно чтобы скрывал в groupBoxPL1)

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

Скрыть не все кнопки
У меня имеются 100 кнопок(Button) скрытых, как сделать видимыми например столько сколько написано в.

Скрыть все кнопки циклом
Как скрыть все (допустим их 10) кнопки циклом с#

Как скрыть все панели, кроме одной при нажатии любой кнопки?
По дефолту есть две панели, слева и справа. При нажатии в любую точку(или кнопку) в левой панели.

Скрыть все кнопки, кроме некоторых
Здравствуйте! Самостоятельно изучаю делфи. Вот такой вопрос. Допустим, у меня на форме 100 кнопок.

761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856

ЦитатаСообщение от NorthMan Посмотреть сообщение

1 2 3 4
foreach (Button button in groupBoxPL1.Controls.OfTypeGroupBox>()) { button.Visible = false; }

надо по другому))

foreach (Button button in groupBoxPL1.Controls.OfTypeButton>()) button.Visible = false;

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

Быстро скрыть все кнопки автофильтра
Как быть если нужно быстро скрыть 300 или более кнопок автофильтра, оставив лишь десяток нужных.

При нажатии на кнопку часть надписей становятся видимыми, а другие — невидимыми. Цель игры — скрыть все кнопки
Разработайте игру,которая заключается в следующем.На форме размещены пять кнопок (Button).При.

Создание GroupBox по нажатию кнопки
Есть два лейбла и два текстбокса, объединённых в GroupBox. Необходимо чтобы по нажатию на Button.

Как привязать кнопки к GroupBox?
Здравствуйте. Внизу окна есть 3 GroupBox`а с кнопками и едитами (слева, по центру и справа), так.

Игра «Скрыть все кнопки»
Разработайте игру, которая заключается в следующем. На фор-ме размещены пять кнопок (Button). При.

Свойство Dock для кнопки в GroupBox
Есть GroupBox, на нем button и listbox button ставлю Dock — Top listbox — Fill Получается вот.

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

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