【发布时间】:2017-09-25 04:37:36
【问题描述】:
这是我的数据网格,我如何确定列之间的距离相同,以便列标题不会像第二列或第三列那样啄...
XAML:
<Style x:Key="Datag1" TargetType="DataGrid">
<Setter Property="ColumnHeaderStyle" Value="{DynamicResource chs1}"></Setter>
</Style>
<Style x:Key="chs1" TargetType="DataGridColumnHeader">
<Setter Property="Background" Value="Brown"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontSize" Value="15"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="LightGray"></Setter>
</Trigger>
</Style.Triggers>
</Style>
<DataGrid Name="DataGridView" Style="{DynamicResource Datag1}" Margin="0,105,0,0" FontSize="15" CanUserSortColumns="True"
Background="Azure" RowBackground="Aqua" AlternatingRowBackground="DarkGray" ColumnHeaderHeight="45" Foreground="Brown"
CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeColumns="True" CanUserReorderColumns="False" BorderBrush="Black">
</DataGrid>
编辑:
最佳解决方案:“您最好将 DataGrid 的 AutoGenerateColumns 属性设置为 false,并明确定义每一列,并在 XAML 标记中为每一列设置单独的宽度。请参阅我编辑的答案以获取示例。” – mm8
非常感谢大家!
【问题讨论】:
-
您好,先生,我默认设置它,在列宽属性中我得到了 SizeToHeader,但我想要的是例如在每个“标题”之后都有一段距离
-
所以您希望能够为每一列指定明确的宽度或增加宽度?
-
你好 mm8,让我们这么说吧:ColumnWidth = SizeToHeader + 1 英寸,这样每列在最大拟合后都有 1 英寸
-
如果你看我的图片,第一栏看起来不错,但如果你看第二和第三栏它们互相啄,我想要的是适合栏目内容,但也不要削减标题太大了
-
您是否尝试按照我的建议处理 dg_AutoGeneratedColumns 事件?