簡體   English   中英

如何在我的datagrid XAML中將列標題居中

[英]How do I center the column header in my datagrid XAML

我試圖使我的數據網格看起來更像一個列表視圖。
我想將文本“名稱”居中
然后刪除項目右側的垂直黑條。 在此處輸入圖片說明

<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>

新增中

<Setter Property="Width" Value="525"/>

<Style x:Key="DGCHeaderStyle"  TargetType="{x:Type DataGridColumnHeader}">

修復

像您一樣對值進行硬編碼是可行的,但是它破壞了WPF的主要功能之一,即控件和視圖的可伸縮性。

而不是硬編碼的“ 525”值,而是在DataGrid本身上設置ColumnWidth屬性將為您提供更好的設計靈活性:

<DataGrid ColumnWidth="*"/>

這樣,無論您有多少列,或者窗口或DataGrid寬度/寬度如何,這些列將始終占據DataGrid中的所有可用空間。

在WPF中, *表示“使用容器中的所有剩余空間”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM