Basit (Bence) WPF Yatay Çizgi?


229

Nispeten basit bir veri giriş formu oluşturmak ve sadece belirli bölümleri formun tam uzunluğunu uzatan yatay bir çizgiyle (HTML'deki bir HR etiketinin aksine değil) ayırmak istiyorum.

Bunu denedim:

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

Üst kontrol sabit bir genişlik olmadığından, bu çizgi pencerenin ekranın tam genişliğine kadar uzanmasına neden olur.

Üst denetimimin / penceremin genişliğini düzeltmeden bunu yapmanın kolay bir yolu var mı?


3
Cevap [burada] [1]. Ben mletterle cevabını tercih ederim. [1]: stackoverflow.com/questions/4011571/…
Yığılmış

Yanıtlar:


523

Bunu xaml'inize eklemeye ne dersiniz:

<Separator/>

9
mükemmel çözüm ve bir etiket!

7
Bunun nasıl bir çözüm olduğunu anlamıyorum. Bir ayırıcı ekliyorum ve hiç çizgi görmüyorum. Ayırıcıyı, yatay bir kural gibi görünmesi için Izgara gibi standart bir yerleşim paneline yerleştirirken hangi yapılandırma gereklidir?
jpierson

Katılıyorum, bu bazı kontroller için çalışmıyor gibi görünüyor
Justin Pihony

12
@jpierson Bir ızgaraya eklerseniz, muhtemelen diğer herhangi bir denetim gibi bir satıra ve sütuna atamanız gerekir. Aksi takdirde, muhtemelen ilk satırda / col'da görünür ve kaçırırsınız. (StackPanel üzerinde düzgün çalışır.)
ANeves

5
<Separator/>Ekran okuyucular tarafından sesli okunacağını lütfen unutmayın . Eğer <Separator/>kullanıcı arayüzündeki öğelerin aslında ayrı gruplar için kullanılır, bu mükemmel bir çözümdür. Hat kullanımının tamamen estetik nedenleri olduğunda, <Line/>veya <Rectangle/>yerine kullanmanızı öneririm .
Simon Rozman

77

Aynı sorunu vardı ve sonunda bir Dikdörtgen öğesi kullanmayı seçti:

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

Bence değiştirmek / şekillendirmek bir ayırıcıdan biraz daha kolay. Tabii ki Separatorbasit ayrımlar için çok kolay ve temiz bir çözüm :)


2
Silverlight 5'te çalışır, ancak Seperatorçalışmaz.
ΩmegaMan

14

Yükseklik 1 Kenarlığı kullanın ve Genişliği ayarlamayın (yani Genişlik = Otomatik, HorizontalAlignment = Genişlet, varsayılan)


2
Zaten dikey ayırıcılar için kullanışlıdır:<Border Width="1" Margin="2" Background="#8888"/>
Qwertie

8

Bununla mücadele eden herkes için: Qwertie'nin yorumu benim için iyi çalıştı.

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

Bu, ihtiyaçlarınıza uygun dikey bir ayırıcı oluşturur.


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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.