【发布时间】:2011-11-02 02:37:25
【问题描述】:
我的第一行看起来像这样:
Title 1 2 3 4 5 6 7 ...
如果我选择
ColumnWidth="Auto"
它的大小正确,但列之间的空间太大。有没有办法缩小它?我尝试在我的 xaml 背后的代码中获取数据来做
if (textColumn != 0) {
textColumn.Width = 8;
}
或类似的东西,但大小似乎没有改变。我不确定这是否正确,因为我是 WPF 和 C# 的新手。谢谢。
编辑:
XAML:
<DataGrid x:Name="dtGridReads" AutoGenerateColumns="False"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode ="Standard"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
ScrollViewer.IsDeferredScrollingEnabled="True"
CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="True"
ItemsSource ="{Binding}" Block.TextAlignment="Center"
AlternatingRowBackground="LightGoldenrodYellow" RowBackground="White"
CanUserAddRows="False" CanUserDeleteRows="False" FrozenColumnCount="1"
GridLinesVisibility="None" Style="{StaticResource ConcensusDataGridStyle}" FontSize="12" >
</DataGrid>
【问题讨论】:
-
你为什么不在你的 xaml 中做呢,如果你做 MVVM 你可以对它进行数据绑定,这样你就不用使用后面的代码了。顺便说一句,你也可以按百分比来做!如果您粘贴代码,也许我可以为您提供更多帮助
-
不确定如何在 XAML 中执行此操作,因为第一列与其他列不同。我发布了我的代码,看看是否有助于解决问题。
-
如果我正确理解您的问题,您希望低于
DataGridColumn的“最小宽度”。DataGrid似乎对DataGridColumn可以变得多小有某种限制。我试着用反射器看这个,但找不到它的来源。还尝试使用 Snoop 更改每个列标题、拇指、文本块等,但这也无济于事 -
我也用它来填充所有的网格。 stackoverflow.com/questions/5028894/…