Come allineare i dati della colonna al centro in un WPF DataGrid
?Allineamento del testo in un WPF DataGrid
risposta
E 'difficile da dire senza conoscere le specifiche, ma ecco un DataGridTextColumn
che è centrato:
<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>
Ha funzionato alla grande anche per me nel dicembre 2010! – ErocM
Questo approccio non ha funzionato per me. Il testo era centrato, ma la larghezza della cella non corrispondeva più alla sua intestazione. La soluzione di Mohammed ha funzionato meglio. –
Come ha detto Kiff, anche la cella si sta spostando. Devi scegliere come target il Textblock come l'esempio di Mohammed A. Fadil. –
Ok, ho usato l'approccio FrameworkElement ma c'era uno strano comportamento quando si tenta di evidenziare la riga.
Ho messo un altro esempio di allineamento Datagrid WPF in questo thread!
Se si utilizza DataGridTextColumn è possibile utilizzare il seguente frammento di codice:
<Style TargetType="DataGridCell">
<Style.Setters>
<Setter Property="TextBlock.TextAlignment" Value="Center" />
</Style.Setters>
</Style>
Questo è il modo migliore: impostare l'allineamento sulla cella fa sì che la cella non riempia la sua larghezza, che appare strana quando viene selezionata la riga – bruceboughton
Inizialmente questo non ha funzionato per me, ma dopo un po 'di test e correzione di alcuni errori nel mio codice questa soluzione ha funzionato alla grande. Grazie! – BrianVPS
@BrianVPS mi fa piacere, sono lieto di sapere che: D –
+1 per Kent Boogaart. ho finito per fare questo, il che rende il codice un po 'meno ingombrante (e mi permette di utilizzare l'allineamento su più colonne):
<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 per lo stile, ma per me "HorizontalAlignment" non funziona, mentre "HorizontalContentAlignment" lo fa. – Emmanuel
La mia soluzione preferita è:
<DataGridTextColumn Header="My Column" Binding="{Binding MyDBValue}" Width="100" >
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.CellStyle>
O nel codice sottostante:
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;
}
Ho iniziato con la soluzione di huttelihut. Sfortunatamente, non ha funzionato ancora per me. Ho ottimizzato la sua risposta e si avvicinò con questa (soluzione è quella di allineare il testo a destra):
<Resources>
<Style x:Key="RightAligned" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
</Resources>
Come potete vedere, ho applicato lo stile a un TextBlock, non il DataGridCell.
E poi ho dovuto impostare l'elemento stile , non il cellulare stile.
ElementStyle="{StaticResource RightAligned}"
Si noti che questo non funziona con 'DataGridTextColumn' –
@JP Hellemons: per me ha funzionato con' DataGridTextColumn' – Mikhail
Alla fine ho avuto problemi con la cella spostata e sembrando funky usando la risposta accettata. So che è tardi, ma spero che le mie scoperte possano aiutare qualcuno. Io uso:
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
piuttosto che il CellStyle.
Ecco @ risposta XAML di MohammedAFadil, convertito in C# codice dietro:
var MyStyle = new Style(typeof(DataGridCell)) {
Setters = {
new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Center)
}
};
Per applicare la Style
, impostare la proprietà CellStyle
del DataGrid
, per esempio
var MyGrid = new DataGrid() {
CellStyle = MyStyle
};
Semplice e pulito! +1 :) Proprio quello di cui avevo bisogno. –
Grazie Danny Beckett per la conversione della risposta XAML di @ MohammedAFadil, convertita in codice C#. Tutti i miei datagrids sono configurati in modo dinamico, quindi posso cambiare qualsiasi cosa, ogni volta.
Per impostare un datagrid vuoto, con niente in esso e quindi legarlo ai dati, basta prendere il tuo datagrid.colonne
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. allineamento del testo Datagrid
- 2. Allineamento del testo in DataGrid
- 3. Allineamento verticale del testo in WPF TextBlock
- 4. Problema di allineamento orizzontale riga datagrid WPF
- 5. Allineamento verticale del contenuto della riga DataGrid
- 6. JList allineamento del testo
- 7. Datagrid modificabile in WPF
- 8. WPF ListView: allineamento del testo nelle colonne selezionate
- 9. Silverlight DataGrid Header Allineamento orizzontale
- 10. Allineamento del testo sul pulsante
- 11. iOS - UITableViewCell allineamento del testo
- 12. Allineamento verticale del testo CSS
- 13. Allineamento del testo in una legenda Matplotlib
- 14. Allineamento verticale del testo in Crystal Reports?
- 15. allineamento orizzontale del testo in openpyxl
- 16. Come aggiornare un DataGrid WPF?
- 17. Allineamento verticale del testo del pulsante
- 18. Allineamento del testo del paragrafo UIL
- 19. Preordinamento di un DataGrid in WPF
- 20. WPF DataGrid filter
- 21. Come bloccare prima colonna del WPF DataGrid
- 22. IsSelected Legatura in WPF DataGrid
- 23. WPF ToolKit DataGrid Performance
- 24. scorrimento liscio per WPF DataGrid
- 25. StringFormat personalizzato in WPF DataGrid
- 26. Prestazioni Datagrid WPF
- 27. Come accedere al testo della casella di testo del modello datagrid WPF C#
- 28. WPF datagrid incollando
- 29. Misurazione del testo in WPF
- 30. Seleziona tutto WPF DataGrid
per Silverlight, vedere [questa risposta] (http://stackoverflow.com/questions/7916226/column-aligment-in-a-silverlight-datagrid/7916301#7916301). –