¿Cómo puedo alinear los datos de la columna al centro en un WPF DataGrid
?Alineación de texto en una cuadrícula de datos WPF
Respuesta
Es difícil de decir sin conocer detalles, pero aquí hay un DataGridTextColumn
que se centra:
<wpf:DataGridTextColumn Header="Name" Binding="{Binding Name}" IsReadOnly="True">
<wpf:DataGridTextColumn.CellStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
</wpf:DataGridTextColumn.CellStyle>
</wpf:DataGridTextColumn>
¡Funcionó muy bien para mí incluso en diciembre de 2010! – ErocM
Este enfoque no funcionó para mí. El texto estaba centrado, pero el ancho de la celda ya no coincidía con su encabezado. La solución de Mohammed funcionó mejor. –
Como dijo Kiff, la celda también está cambiando. Debes apuntar a Textblock como el ejemplo de Mohammed A. Fadil. –
Ok, he utilizado el enfoque de FrameworkElement pero hubo un comportamiento extraño cuando intenta resaltar la fila.
He puesto otro ejemplo de alineación WPF Datagrid en este thread!
Si está utilizando DataGridTextColumn puede utilizar el código siguiente fragmento:
<Style TargetType="DataGridCell">
<Style.Setters>
<Setter Property="TextBlock.TextAlignment" Value="Center" />
</Style.Setters>
</Style>
Esta es la mejor manera: establecer la alineación en la celda hace que la celda no ocupe su ancho, lo que parece extraño cuando se selecciona la fila – bruceboughton
Inicialmente esto no funcionó para mí, pero después de un poco más de pruebas y de corregir algunos errores en mi El código de esta solución funcionó muy bien. ¡Gracias! – BrianVPS
@BrianVPS Bienvenido, me complace escuchar eso: D –
+1 de Kent Boogaart. que terminé haciendo esto, lo que hace que el código algo menos cargada (y me permite utilizar la alineación en varias columnas):
<Resources>
<Style x:Key="NameCellStyle" TargetType="DataGridCell">
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Name" CellStyle="{StaticResource NameCellStyle}" Binding="{Binding Name}"/>
// .. other columns
</DataGrid.Columns>
+1 por estilo, pero para mí 'HorizontalAlignment' no funciona, mientras que' HorizontalContentAlignment' sí. – Emmanuel
Mi solución favorita es:
<DataGridTextColumn Header="My Column" Binding="{Binding MyDBValue}" Width="100" >
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.CellStyle>
O en el código detrás:
grid.CellStyle = newCellStyle();
public static Style newCellStyle()
{
//And here is the C# code to achieve the above
System.Windows.Style style = new Style(typeof(DataGridCell));
style.Setters.Add(new System.Windows.Setter
{
Property = Control.HorizontalAlignmentProperty,
Value = HorizontalAlignment.Center
});
return style;
}
Empecé con la solución de huttelihut. Desafortunadamente, eso no funcionó para mí todavía. Pellizqué su respuesta y se acercó con esta (solución es alinear el texto a la derecha):
<Resources>
<Style x:Key="RightAligned" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
</Resources>
Como se puede ver, que aplica el estilo a un TextBlock, no el DataGridCell.
Y luego tuve que definir el estilo Elemento, no el estilocelular.
ElementStyle="{StaticResource RightAligned}"
Tenga en cuenta que esto no funciona con 'DataGridTextColumn' –
@JP Hellemons: para mí funciona con' DataGridTextColumn' – Mikhail
Terminé teniendo problemas con la celda desplazada y buscando funky con la respuesta aceptada. Sé que es tarde, pero con suerte mis hallazgos ayudarán a alguien. Yo uso:
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
en lugar de la CellStyle.
Aquí es @ respuesta XAML de MohammedAFadil, convertidos a C# código detrás:
var MyStyle = new Style(typeof(DataGridCell)) {
Setters = {
new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Center)
}
};
Para aplicar el Style
, establezca la propiedad de la CellStyle
DataGrid
, por ejemplo,
var MyGrid = new DataGrid() {
CellStyle = MyStyle
};
¡Simple y limpio! +1 :) Justo lo que necesitaba. –
Gracias Danny Beckett para convertir @ respuesta XAML de MohammedAFadil, se convirtió al código C#. Todas mis redes de datos están configuradas dinámicamente, por lo que puedo cambiar cualquier cosa, siempre.
Para configurar una cuadrícula de datos vacía, sin nada en ella y luego vincularla solo a los datos, simplemente tome su cuadrícula de datos.columnas
var centerTextSetter = new Style(typeof(DataGridCell))
{
Setters = { new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Center) }
};
DgDbNames.Columns.Add(new DataGridTextColumn()
{
Header = "Db Name",
Binding = new System.Windows.Data.Binding("DbName"),
IsReadOnly = true,
Width = new DataGridLength(0.2, DataGridLengthUnitType.Star),
CellStyle = centerTextSetter
});
- 1. Alineación de texto de cuadrícula de datos
- 2. Alineación vertical en WPF cuadro de texto
- 3. Cuadrícula de datos editable en WPF
- 4. Unión de cuadrícula de datos en WPF
- 5. Alineación vertical del texto en WPF TextBlock
- 6. WPF: Establecer la alineación de texto de una GridViewColumn
- 7. Encuadernación en una columna de texto de cuadrícula de datos de WPF
- 8. Desactivar tabstop entre columnas en una cuadrícula de datos WPF
- 9. ¿Qué control de cuadrícula/cuadrícula en WPF?
- 10. WPF Ocultar columna de cuadrícula
- 11. Ingresar datos en una cuadrícula
- 12. Alineación de texto en JLabel
- 13. Ordenar en varias columnas en la cuadrícula de datos WPF
- 14. Cuadrícula de datos en WPF - Prefijo de columna 1 ordenado
- 15. alineación de 2 columnas en una vista de texto
- 16. Cómo actualizar la cuadrícula de datos en WPF
- 17. WPF Enlace de cuadrícula de datos y visualización de columna
- 18. alineación de celda de fila de cabecera de cuadrícula pulida
- 19. Alineación de texto en una leyenda de Matplotlib
- 20. Cambiar fila de cuadrícula de datos WPF Color
- 21. ¿Cómo agrego múltiples controles a una DataGridTemplateColumn de una cuadrícula de datos usando wpf?
- 22. WPF: Alineación horizontal
- 23. En WPF, ¿alguien ha animado una cuadrícula?
- 24. WPF MVVM recuperar filas seleccionadas de la cuadrícula de datos
- 25. Alineación de contenido en un WPF Viewbox
- 26. Pasar una imagen a través de WCF y visualizarla en una cuadrícula de datos WPF
- 27. En WPF, ¿cómo puedo vincular una columna de cuadrícula de datos a una columna específica de una tabla de datos?
- 28. iOS - Alineación de texto UITableViewCell
- 29. ¿Cómo se obtiene una cuadrícula de datos WPF con celdas que envuelven texto en lugar de truncarlo?
- 30. Programativamente trayendo una fila de cuadrícula de datos a la vista en WPF, MVVM
para Silverlight, ver [esta respuesta] (http://stackoverflow.com/questions/7916226/column-aligment-in-a-silverlight-datagrid/7916301#7916301). –