2017-11-09 1 views
1

DataGrid를 listview처럼 보이게하려고합니다.
텍스트 "이름"
가운데에 놓은 다음 항목 오른쪽에있는 세로로 된 검은 색 막대를 제거하십시오. enter image description here어떻게 열 머리글을 데이터 격자에 가운데에 배치합니까? 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> 

답변

0

하드 코딩이 작동했을하지만 주요 기능 중 하나 패배와 같은 값 컨트롤 및 뷰의 확장 성을 제공하는 WPF 상관없이, 또는 얼마나 얼마나 많은 열

<DataGrid ColumnWidth="*"/> 

그런 식으로, 상기 DataGrid 자체에 ColumnWidth 속성을 설정 오히려 하드 코딩 된 '525'값보다

는 더 나은 설계 유연성을 제공하지 않을 것이다 너비가 좁거나 창문이 좁 으면 DataGrid이 나오고 열은 항상 DataGrid의 사용 가능한 공간을 모두 차지합니다.

WPF 용어에서 *은 컨테이너의 "나머지 모든 공간 사용"을 의미합니다.

+0

ColumnWidth는 다양한 상황에서 쉽게 손상됩니다. 실제로 DataGrid는 매우 파손되어 있으므로 모든 사람들이 데이터 그리드에 접근하지 말 것을 강력히 제안합니다. 비슷한 기능을 가진 컨트롤이 필요한 경우 DataGrid 문제를 해결하는 데 소요되는 시간과 동일한 시간에 직접 홈런을 생성 할 수 있습니다. DataGrid는 WPF 프레임 워크에서 가장 쉽게 깨진 컨트롤입니다. – Krythic

0

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

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

하려면 고정 추가 그것을

관련 문제