¿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?


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/>

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 :)


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)


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.


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>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.