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


228

Створення відносно простої форми для введення даних і просто потрібно відокремити певні розділи горизонтальною лінією (не на відміну від тегу HR в HTML), яка розтягує всю довжину форми.

Я спробував це:

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

Оскільки батьківський елемент управління не має фіксованої ширини, ця лінія змушує вікно розтягуватися на повну ширину екрана.

Чи є простий спосіб зробити це без фіксації ширини батьківського керування / вікна?


3
Відповідь [тут] [1]. Я вважаю за краще відповідь млетерле. [1]: stackoverflow.com/questions/4011571 / ...
штабелях

Відповіді:


522

Як щодо додати це до вашого xaml:

<Separator/>

9
блискуче рішення та одна мітка!

7
Я не розумію, як це рішення. Я додаю роздільник, і я не бачу жодного рядка. Яка конфігурація необхідна для розміщення роздільника на стандартній панелі компонування, наприклад, Grid, щоб він відображався як горизонтальне правило?
jpierson

Я погоджуюся, виявляється, що це не працює для деяких контролів
Джастін Піхоні

12
@jpierson Якщо ви додасте її до сітки, вам, ймовірно, потрібно призначити її рядку та стовпцю, як і будь-який інший елемент управління. Інакше він, мабуть, з’явиться в першому рядку / стовпчику, і ви його пропустите. (Працює належним чином на StackPanel.)
ANeves

5
Зверніть увагу, що <Separator/>читачі екрану будуть читати голосно. Якщо <Separator/>він використовується для фактичного розділення груп елементів в інтерфейсі, це ідеальне рішення. Якщо використання лінії має суто естетичні причини, я б запропонував використовувати <Line/>або <Rectangle/>замість цього.
Саймон Розман

77

У мене була та сама проблема, і врешті-решт я вирішив використовувати елемент прямокутника:

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

На мою думку, змінити / форму трохи легше, ніж роздільник. Звичайно Separator, це дуже просте і акуратне рішення для простих роз'єднань :)


2
Працює в Silverlight 5, тоді як Seperatorні.
ΩmegaMan

14

Використовуйте Межу висоти 1 і не встановлюйте Ширину (тобто Ширина = Авто, Горизонтальне вирівнювання = Розтягнути, за замовчуванням)


2
Це зручно для вертикальних сепараторів у будь-якому випадку:<Border Width="1" Margin="2" Background="#8888"/>
Qwertie

8

Для всіх, хто бореться з цим: коментар Qwertie працював на мене добре.

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

Це створює вертикальний сепаратор, якого ви можете покращити відповідно до своїх потреб.


3
To draw Horizontal 
************************    
<Rectangle  HorizontalAlignment="Stretch"  VerticalAlignment="Center" Fill="DarkCyan" Height="4"/>

To draw vertical 
*******************
 <Rectangle  HorizontalAlignment="Stretch" VerticalAlignment="Center" Fill="DarkCyan" Height="4" Width="Auto" >
        <Rectangle.RenderTransform>
            <TransformGroup>
                <ScaleTransform/>
                <SkewTransform/>
                <RotateTransform Angle="90"/>
                <TranslateTransform/>
            </TransformGroup>
        </Rectangle.RenderTransform>
    </Rectangle>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.