Простая (я думаю) горизонтальная линия в WPF?

Создание относительно простой формы для ввода данных, и вы просто хотите разделить определенные разделы горизонтальной линией (в отличие от тега HR в HTML), которая растягивается на всю длину формы.

Я пробовал это:

<Line Stretch="Fill" Stroke="Black" X2="1"/>

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

Есть ли простой способ сделать это, не фиксируя ширину родительского элемента управления / окна?


person Phil Sandler    schedule 22.02.2010    source источник
comment
Ответ [здесь] [1]. Я предпочитаю ответ mletterle. [1]: stackoverflow.com/questions/4011571/   -  person Stacked    schedule 18.09.2013


Ответы (5)


Как насчет добавления этого в свой xaml:

<Separator/>
person Adel Hazzah    schedule 22.02.2010
comment
гениальное решение и одна бирка! - person ; 21.01.2013
comment
Я не понимаю, как это решение. Я добавляю разделитель и не вижу ни одной строки. Какая конфигурация необходима при размещении разделителя на стандартной панели макета, такой как сетка, чтобы он отображался как горизонтальная линейка? - person jpierson; 20.03.2013
comment
Я согласен, похоже, что это не работает для некоторых элементов управления - person Justin Pihony; 11.04.2013
comment
Я добавил высоту и цвет фона к разделителю, когда он не отображался. - person ΩmegaMan; 17.05.2013
comment
@jpierson Если вы добавите его в сетку, вам, вероятно, потребуется назначить его строке и столбцу, как любой другой элемент управления. В противном случае он, вероятно, появится в первой строке / столбце, и вы его пропустите. (Он правильно работает на StackPanel.) - person ANeves thinks SE is evil; 28.10.2013
comment
это правильно, необходимо назначить строку / столбец или, возможно, диапазон столбцов. - person liang; 03.08.2015
comment
Обратите внимание, что <Separator/> будет прочитан вслух программами чтения с экрана. Если <Separator/> используется для фактического разделения групп элементов в пользовательском интерфейсе, это идеальное решение. Если использование линии имеет чисто эстетические причины, я бы предложил вместо этого использовать <Line/> или <Rectangle/>. - person Simon Rozman; 19.01.2018
comment
Для меня это было недоступно в UWP. - person Rubens; 03.01.2020
comment
Это недоступно в приложении wpf .Net Core 3.1. - person ΩmegaMan; 24.01.2020

У меня была такая же проблема, и я решил использовать элемент Rectangle:

<Rectangle HorizontalAlignment="Stretch" Fill="Blue" Height="4"/>

На мой взгляд, изменить / придать форму несколько проще, чем разделитель. Конечно Separator - очень простое и удобное решение для простого разделения :)

person Deruijter    schedule 30.08.2012
comment
Работает в Silverlight 5, а Seperator - нет. - person ΩmegaMan; 29.09.2014

Используйте границу высотой 1 и не устанавливайте ширину (например, Width = Auto, HorizontalAlignment = Stretch, значение по умолчанию)

person Ana Betts    schedule 22.02.2010
comment
В любом случае это удобно для вертикальных разделителей: <Border Width="1" Margin="2" Background="#8888"/> - person Qwertie; 30.11.2012

Для всех, кто борется с этим: комментарий Qwertie сработал для меня.

<Border Width="1" Margin="2" Background="#8888"/>

Это создает вертикальный разделитель, который вы можете настроить в соответствии со своими потребностями.

person P_Fitz    schedule 10.02.2015

person    schedule
comment
Почему бы не сделать это? <Rectangle VerticalAlignment="Stretch" HorizontalAlignment="Center" Fill="DarkCyan" Width="4"/> - person noxx; 28.09.2020