Làm cách nào để căn chỉnh dữ liệu cột thành trung tâm trong WPF DataGrid
?Căn chỉnh văn bản trong WPF DataGrid
Trả lời
Thật khó để nói mà không biết chi tiết cụ thể, nhưng đây là một DataGridTextColumn
đó tập trung:
<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>
Làm việc tuyệt vời cho tôi ngay cả trong tháng 12 năm 2010! – ErocM
Cách tiếp cận này không hiệu quả đối với tôi. Văn bản được căn giữa, nhưng chiều rộng ô không còn khớp với tiêu đề của nó nữa. Giải pháp của Mohammed hoạt động tốt nhất. –
Như Kiff nói, tế bào cũng đang dịch chuyển. Bạn phải nhắm mục tiêu Textblock như Mohammed A. Fadil exemple. –
Ok, tôi đã sử dụng cách tiếp cận FrameworkElement nhưng có một hành vi kỳ lạ khi bạn cố gắng để làm nổi bật hàng.
Tôi đã đặt một ví dụ khác về căn chỉnh mã hóa WPF trong số thread này!
Nếu bạn đang sử dụng DataGridTextColumn bạn có thể sử dụng đoạn mã sau:
<Style TargetType="DataGridCell">
<Style.Setters>
<Setter Property="TextBlock.TextAlignment" Value="Center" />
</Style.Setters>
</Style>
Đây là cách tốt nhất - đặt căn chỉnh trên ô làm cho ô không lấp đầy chiều rộng của nó, trông kỳ lạ khi hàng được chọn – bruceboughton
Ban đầu, điều này không hiệu quả đối với tôi, nhưng sau một chút thử nghiệm và sửa một số lỗi trong mã giải pháp này làm việc tuyệt vời. cảm ơn! – BrianVPS
@BrianVPS Chào mừng, tôi rất vui khi biết rằng: D –
+1 cho Kent Boogaart. tôi đã kết thúc làm điều này, mà làm cho mã hơi ít lộn xộn (và cho phép tôi sử dụng sự liên kết trên nhiều cột):
<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 cho kiểu, nhưng đối với tôi, 'HorizontalAlignment' không hoạt động trong khi' HorizontalContentAlignment' thực hiện. – Emmanuel
giải pháp ưa thích của tôi là:
<DataGridTextColumn Header="My Column" Binding="{Binding MyDBValue}" Width="100" >
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.CellStyle>
Hoặc ở mã phía sau:
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;
}
Tôi bắt đầu với giải pháp của huttelihut. Thật không may, điều đó không hiệu quả với tôi. Tôi chỉnh câu trả lời của mình và đến với điều này (giải pháp là để gắn kết các văn bản sang phải):
<Resources>
<Style x:Key="RightAligned" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
</Resources>
Như bạn thấy đấy, tôi đã áp dụng phong cách để một TextBlock, không phải là DataGridCell.
Và sau đó tôi phải đặt kiểu Phần tử, không phải kiểu Ô số.
ElementStyle="{StaticResource RightAligned}"
Xin lưu ý rằng điều này không làm việc với 'DataGridTextColumn' –
@JP Hellemons: đối với tôi, nó đã làm việc với' DataGridTextColumn' – Mikhail
Tôi đã gặp sự cố với ô đang bị dịch chuyển và trông sôi nổi bằng câu trả lời được chấp nhận. Tôi biết đã muộn rồi, nhưng hy vọng những phát hiện của tôi sẽ giúp đỡ ai đó. Tôi sử dụng:
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center"/>
</Style>
chứ không phải là CellStyle.
Dưới đây là câu trả lời @ XAML MohammedAFadil của, chuyển đổi sang C# mã sau:
var MyStyle = new Style(typeof(DataGridCell)) {
Setters = {
new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Center)
}
};
Để áp dụng các Style
, thiết lập CellStyle
tài sản của DataGrid
, ví dụ
var MyGrid = new DataGrid() {
CellStyle = MyStyle
};
Đơn giản và rõ ràng! +1 :) Chỉ cần những gì tôi cần. –
Cảm ơn Danny Beckett đã chuyển đổi câu trả lời XAML của @ MohammedAFadil, được chuyển thành mã C#. Tất cả các datagrids của tôi được thiết lập tự động, vì vậy tôi có thể thay đổi bất cứ điều gì, bất cứ khi nào.
Để thiết lập một DataGrid trống, không có gì trong đó và sau đó chỉ cần liên kết nó với dữ liệu, chỉ cần lấy dữ liệu của bạn.cột
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. Làm cách nào để căn chỉnh văn bản trong tiêu đề cột DataGrid trong xaml?
- 2. WPF: Đặt căn chỉnh văn bản của GridViewColumn
- 3. Căn chỉnh văn bản JList
- 4. Android Chỉnh sửa căn chỉnh văn bản
- 5. Căn chỉnh dọc văn bản trong nhãn
- 6. Căn chỉnh văn bản trong HTML.TextBoxFor
- 7. văn bản căn chỉnh phải trong UIPickerView
- 8. Cách căn chỉnh và căn trái các chuỗi văn bản căn chỉnh trong Bash
- 9. Căn giữa văn bản trong một JTextArea hoặc JTextPane - Căn chỉnh văn bản ngang
- 10. Qt QProgressBar - căn chỉnh văn bản
- 11. Văn bản căn chỉnh email HTML
- 12. cột lưới trơn (căn chỉnh văn bản)
- 13. Căn chỉnh văn bản của UIButton?
- 14. iOS - Căn chỉnh văn bản UITableViewCell
- 15. Căn chỉnh dọc với Văn bản lõi?
- 16. WPF: Căn chỉnh ngang
- 17. Căn chỉnh văn bản trên nút
- 18. Căn chỉnh văn bản UILabel phải
- 19. Chế độ xem danh sách WPF: Căn chỉnh văn bản trong các cột được chọn
- 20. Theo chiều dọc căn chỉnh các khối văn bản trong WPF
- 21. Làm cách nào để căn chỉnh văn bản căn chỉnh trong canvas html5?
- 22. Điều chỉnh căn chỉnh văn bản bằng SpannableString
- 23. văn bản căn chỉnh theo chiều dọc trong hàng NSTableView
- 24. Căn chỉnh văn bản bên trong một ô
- 25. Căn chỉnh văn bản/bố cục trong Android (textAlignment, gravity)
- 26. Căn chỉnh văn bản theo chiều dọc Trong Navbar
- 27. Căn chỉnh văn bản trong chú thích Matplotlib
- 28. Căn chỉnh văn bản trong JLabel ở bên phải
- 29. Căn chỉnh văn bản theo chiều dọc trong UILabel
- 30. Văn bản căn chỉnh phải trong trường nhập HTML
Đối với Silverlight, xem [answer] (http://stackoverflow.com/questions/7916226/column-aligment-in-a-silverlight-datagrid/7916301#7916301). –