Ligne horizontale simple (je pense) dans WPF?

228

Créer un formulaire de saisie de données relativement simple, et je veux juste séparer certaines sections avec une ligne horizontale (un peu comme une balise HR en HTML) qui s'étend sur toute la longueur du formulaire.

J'ai essayé ceci:

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

Dans la mesure où le contrôle parent n'est pas une largeur fixe, cette ligne entraîne la fenêtre à s'étirer sur toute la largeur de l'écran.

Existe-t-il un moyen facile de le faire sans fixer la largeur de mon contrôle / fenêtre parent?

Phil Sandler
la source
3
La réponse est [ici] [1]. Je préfère la réponse de mletterle. [1]: stackoverflow.com/questions/4011571/…
Empilé le

Réponses:

522

Que diriez-vous d'ajouter ceci à votre xaml:

<Separator/>
Adel Hazzah
la source
9
solution brillante et un tag!
7
Je ne comprends pas comment c'est une solution. J'ajoute un séparateur et je ne vois aucune ligne. Quelle configuration est nécessaire lorsque vous placez le séparateur dans un panneau de disposition standard tel qu'une grille pour qu'il apparaisse comme une règle horizontale?
jpierson
Je suis d'accord, il semble que cela ne fonctionne pas pour certains contrôles
Justin Pihony
12
@jpierson Si vous l'ajoutez à une grille, vous devrez probablement l'affecter à une ligne et une colonne comme tout autre contrôle. Sinon, il apparaîtra probablement dans la première ligne / colonne et vous le manquerez. (Il fonctionne correctement sur un StackPanel.)
ANeves
5
Veuillez noter que les <Separator/>lecteurs d'écran le liront à haute voix. Si <Separator/>est utilisé pour réellement séparer des groupes d'éléments dans l'interface utilisateur, c'est une solution parfaite. Lorsque l'utilisation de la ligne a des raisons purement esthétiques, je suggère d'utiliser <Line/>ou à la <Rectangle/>place.
Simon Rozman
77

J'ai eu le même problème et j'ai finalement choisi d'utiliser un élément Rectangle:

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

À mon avis, il est un peu plus facile de modifier / façonner qu'un séparateur. Bien sûr, Separatorc'est une solution très simple et soignée pour les séparations simples :)

Deruijter
la source
2
Fonctionne dans Silverlight 5 alors Seperatorque non.
ΩmegaMan
14

Utilisez une bordure de hauteur 1 et ne définissez pas la largeur (c'est-à-dire Largeur = Auto, HorizontalAlignment = Stretch, la valeur par défaut)

Ana Betts
la source
2
C'est pratique pour les séparateurs verticaux de toute façon:<Border Width="1" Margin="2" Background="#8888"/>
Qwertie
8

Pour toute autre personne aux prises avec cela: le commentaire de Qwertie a bien fonctionné pour moi.

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

Cela crée un séparateur vertical que vous pouvez talior en fonction de vos besoins.

P_Fitz
la source
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
la source