我试图让我的datagrid看起来更像listview
我想把文字放在中心位置" name"
然后删除项目右侧的垂直黑条。
<Window.Resources>
<Style x:Key="DGCHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Height" Value="30"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="Background" Value="#303030" />
<Setter Property="Foreground" Value="White"/>
</Style>
<Style x:Key="DGHeaderStyle" TargetType="{x:Type DataGrid}">
<Setter Property="ColumnHeaderStyle" Value="{DynamicResource DGCHeaderStyle}"/>
</Style>
</Window.Resources>
<Grid>
<DataGrid Foreground="Black" HeadersVisibility="Column" Background="Transparent" BorderBrush="Black" RowBackground="Transparent" x:Name="dgItems" Margin="2,0,10,10" Style="{DynamicResource DGHeaderStyle}"/>
</Grid>
答案 0 :(得分:0)
添加
<Setter Property="Width" Value="525"/>
要
<Style x:Key="DGCHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
修正了它
答案 1 :(得分:0)
像你所做的那样硬编码值会起作用,但它会破坏WPF的一个主要功能,即控件和视图的可扩展性。
而不是硬编码的525&#39;值,在ColumnWidth
上设置DataGrid
属性本身会为您提供更好的设计灵活性:
<DataGrid ColumnWidth="*"/>
这样,无论您拥有多少列,或者窗口或DataGrid
获得的宽度/范围有多宽,列都会占用DataGrid
中的所有可用空间
在WPF术语中,*
表示&#34;使用所有剩余空间&#34;在容器中。