¿Línea horizontal simple (creo) en WPF?

228

Crear un formulario de entrada de datos relativamente simple, y solo desea separar ciertas secciones con una línea horizontal (no muy diferente de una etiqueta HR en HTML) que se extiende por todo el formulario.

He intentado esto:

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

Debido a que el control primario no tiene un ancho fijo, esta línea hace que la ventana se extienda al ancho completo de la pantalla.

¿Hay una manera fácil de hacer esto sin fijar el ancho de mi ventana / control principal?

Phil Sandler
fuente
3
La respuesta es [aquí] [1]. Prefiero la respuesta de mletterle. [1]: stackoverflow.com/questions/4011571/…
Apilado el

Respuestas:

522

¿Qué tal agregar esto a su xaml:

<Separator/>
Adel Hazzah
fuente
99
¡Solución brillante y una etiqueta!
77
No entiendo cómo esto es una solución. Agrego un separador y no veo ninguna línea. ¿Qué configuración es necesaria cuando se coloca el separador dentro de un panel de diseño estándar como una cuadrícula para que se muestre como una regla horizontal?
jpierson
Estoy de acuerdo, parece que esto no funciona para algunos controles
Justin Pihony
12
@jpierson Si lo agrega a una cuadrícula, probablemente deba asignarlo a una fila y columna como cualquier otro control. De lo contrario, probablemente aparecerá en la primera fila / columna, y lo perderá. (Funciona correctamente en un StackPanel.)
ANeves
55
Tenga en cuenta que los <Separator/>lectores de pantalla lo leerán en voz alta. Si <Separator/>se usa para separar grupos de elementos en la interfaz de usuario, esta es una solución perfecta. Cuando el uso de la línea tiene razones puramente estéticas, sugeriría usar <Line/>o en su <Rectangle/>lugar.
Simon Rozman
77

Tuve el mismo problema y finalmente elegí usar un elemento Rectangle:

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

En mi opinión, es algo más fácil modificar / dar forma que un separador. Por supuesto, Separatores una solución muy fácil y ordenada para separaciones simples :)

Deruijter
fuente
2
Funciona en Silverlight 5 mientras Seperatorque no.
ΩmegaMan
14

Use un borde de altura 1 y no configure el ancho (es decir, ancho = automático, alineación horizontal = estiramiento, el valor predeterminado)

Ana Betts
fuente
2
De todos modos es útil para separadores verticales:<Border Width="1" Margin="2" Background="#8888"/>
Qwertie
8

Para cualquiera que esté luchando con esto: el comentario de Qwertie funcionó bien para mí.

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

Esto crea un separador vertical que puede tallar para satisfacer sus necesidades.

P_Fitz
fuente
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
fuente