Quiero agregar un separador vertical a una cuadrícula, pero solo puedo encontrar el horizontal. ¿No hay una Propiedad, donde puede ingresar si la línea del separador debe ser horizontal o vertical?
Busqué mucho, pero no encontré una solución corta y fácil para esto.
Utilizo .Net Framework 4.0 y Visual Studio Ultimate 2012.
Si trato de rotar el Separador horizontal en 90 grados, pierde la capacidad de "acoplarse" a otros Componentes.
El separador girado se ve así:
<Separator HorizontalAlignment="Left" Height="100" Margin="264,26,0,0" VerticalAlignment="Top" Width="100" RenderTransformOrigin="0.5,0.5">
<Separator.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Separator.RenderTransform>
</Separator>
wpf
xaml
visual-studio-2012
separator
Martin Weber
fuente
fuente
Rectangle
?Border
también puede ser una solución ..Respuestas:
Esto debería hacer exactamente lo que el autor quería:
si desea un separador horizontal, cambie el
Orientation
deStackPanel
aVertical
.fuente
RenderTransform
. Atajo ordenado para recordar :)Menu
entreMenuItem
s también. Siempre se estira agradablemente para que coincida con la altura / ancho del menú.Esto no es exactamente lo que preguntó el autor, pero aún así, es muy simple y funciona exactamente como se esperaba.
El rectángulo hace el trabajo:
fuente
<Rectangle HorizontalAlignment="Stretch" Height="3" Margin="-1,6" Stroke="Black" Fill="White" />
En el pasado he usado el estilo que se encuentra aquí.
Debe establecer la transformación en
LayoutTransform
lugar deRenderTransform
que la transformación se produzca durante el pase de Diseño, no durante el pase de Render. La pasada de diseño se produce cuando WPF está intentando diseñar controles y averiguar cuánto espacio ocupa cada control, mientras que la pasada de representación se produce después de la pasada de diseño cuando WPF intenta representar los controles.Puede leer más sobre la diferencia entre
LayoutTransform
yRenderTransform
aquí o aquí.fuente
DockPanel
, debe ser capaz de establecerDockPanel.Dock
en suSeparator
a cualquier lado que usted quiere que se acopló a. Con WPF, el panel que aloja el control generalmente determina la posición del control y, a veces, incluso el tamaño predeterminado. Si es nuevo en los diseños de WPF, le recomendaría leer este artículo: Diseños de WPF - Un inicio rápido visualMe gusta usar el control "Línea". Le da un control exacto sobre dónde comienza y termina el separador. Aunque no es exactamente un separador, funciona de la misma manera, especialmente en un StackPanel.
El control de línea también funciona dentro de una cuadrícula. Prefiero usar StackPanel porque no tiene que preocuparse por la superposición de diferentes controles.
X1 = x posición inicial (debe ser 0 para una línea vertical)
X2 = x posición final (X1 = X2 para una línea vertical)
Y1 = y posición inicial (debe ser 0 para una línea vertical)
Y2 = posición final y (Y2 = altura de línea deseada)
Utilizo "margen" para agregar relleno en cualquier lado de la línea vertical. En este caso, hay 5 píxeles a la izquierda y 10 píxeles a la derecha de la línea vertical.
Dado que el control de línea le permite elegir las coordenadas xey del inicio y el final de la línea, también puede usarlo para líneas horizontales y líneas en cualquier ángulo intermedio.
fuente
Esta es una forma muy sencilla de hacerlo sin funcionalidad y todo efecto visual,
Use una cuadrícula y simplemente personalícela.
Solo otra forma de hacerlo.
fuente
<Grid HorizontalAlignment="Stretch" Height="1" Margin="0,10" Background="Black"/>
Separador vertical
separador horizontal
fuente
De http://social.msdn.microsoft.com/Forums/vstudio/en-US/12ead5d4-1d57-4dbb-ba81-bc13084ba370/how-can-i-add-a-line-as-a-visual-separator -a-la-cuadrícula-como-control-de-contenido? forum = wpf :
Pruebe este ejemplo y vea si se ajusta a sus necesidades, hay tres aspectos principales.
Line.Stretch está configurado para llenar.
Para las líneas horizontales, la alineación vertical de la línea se establece en la parte inferior, y para las líneas verticales, la alineación horizontal se establece en la derecha.
Luego, necesitamos decirle a la línea cuántas filas o columnas deben abarcar, esto se hace enlazando a la propiedad de conteo RowDefinitions o ColumnDefintions.
fuente
utilizar
fuente
Así es como lo hice:
fuente