Sederhana (menurut saya) Garis Horisontal dalam WPF?

228

Membuat formulir entri data yang relatif sederhana, dan hanya ingin memisahkan bagian-bagian tertentu dengan garis horizontal (tidak seperti tag HR dalam HTML) yang merentangkan seluruh formulir.

Saya sudah mencoba ini:

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

Karena kontrol induk bukan lebar tetap, garis ini menyebabkan jendela meregang ke lebar penuh layar.

Apakah ada cara mudah untuk melakukan ini tanpa memperbaiki lebar kontrol / jendela orang tua saya?

Phil Sandler
sumber
3
Jawabannya adalah [di sini] [1]. Saya lebih suka jawaban dari mletterle. [1]: stackoverflow.com/questions/4011571/…
Stacked

Jawaban:

522

Bagaimana kalau menambahkan ini ke xaml Anda:

<Separator/>
Adel Hazzah
sumber
9
solusi cemerlang dan satu tag!
7
Saya tidak mengerti bagaimana ini solusi. Saya menambahkan pemisah dan saya tidak melihat garis apa pun. Konfigurasi apa yang diperlukan ketika menempatkan pemisah di dalam panel tata letak standar seperti Grid untuk membuatnya muncul seperti aturan horizontal?
jpierson
Saya setuju, tampaknya ini tidak berfungsi untuk beberapa kontrol
Justin Pihony
12
@ jpierson Jika Anda menambahkannya ke kotak, Anda mungkin perlu menetapkannya ke baris dan kolom seperti kontrol lainnya. Kalau tidak, mungkin akan muncul di baris / col pertama, dan Anda akan melewatkannya. (Ini berfungsi dengan baik di StackPanel.)
ANeves
5
Harap dicatat bahwa <Separator/>akan dibaca-keras oleh pembaca layar. Jika <Separator/>digunakan untuk benar-benar memisahkan kelompok item di UI, ini adalah solusi yang sempurna. Di mana penggunaan garis murni memiliki alasan estetika, saya sarankan menggunakan <Line/>atau <Rectangle/>sebagai gantinya.
Simon Rozman
77

Saya memiliki masalah yang sama dan akhirnya memilih untuk menggunakan elemen Rectangle:

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

Menurut pendapat saya agak lebih mudah untuk memodifikasi / bentuk daripada pemisah. Tentu saja Separatorini adalah solusi yang sangat mudah dan rapi untuk pemisahan sederhana :)

Deruijter
sumber
2
Bekerja di Silverlight 5 sedangkan Seperatortidak.
ΩmegaMan
14

Gunakan Batas tinggi 1 dan jangan mengatur Lebar (mis. Lebar = Otomatis, HorizontalAlignment = Peregangan, default)

Ana Betts
sumber
2
Ini berguna untuk pemisah vertikal:<Border Width="1" Margin="2" Background="#8888"/>
Qwertie
8

Untuk orang lain yang berjuang dengan ini: komentar Qwertie bekerja dengan baik untuk saya.

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

Ini menciptakan pemisah vertikal yang dapat Anda gunakan untuk menyesuaikan kebutuhan Anda.

P_Fitz
sumber
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>
shaiju mathew
sumber