모든 열 머리글에서 텍스트 래핑을 활성화하려면 어떻게 해야 합니까?
의 모든 열 머리글에 텍스트 래핑을 활성화하려면 어떻게 해야 합니까?DataGrid
다른 기본 헤더 기능을 비활성화하지 않고?필요한 열 크기 조정, 정렬 방향 표시기 등.
이것을 할 수 있는 방법이 있습니까?
또는 app.xaml 파일의 원시 요소를 신경 쓰지 말고 다음(내 개체)을 수행하십시오.
<DataGrid Name="WBdataGrid" AutoGenerateColumns="False" ColumnHeaderHeight="50" >
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding}"></TextBlock>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns> ...
다른 기본 헤더 기능을 비활성화하지 않고 DataGrid의 모든 열 헤더에 텍스트 래핑을 활성화합니다.
다음 네임스페이스를 app.xaml 파일에 추가해야 합니다.
xmlns:primitives="clr-namespace:Microsoft.Windows.Controls.Primitives;assembly=WPFToolkit"
그런 다음 이 태그를 app.xaml에 추가합니다.
<Style TargetType="{x:Type primitives:DataGridColumnHeader}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding}"></TextBlock>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
이렇게 하면 WPF 응용 프로그램 전체에 걸쳐 모든 데이터 그리드의 헤더에 텍스트 래핑이 추가됩니다.
각 DataGrid 헤더의 텍스트를 중앙에 배치하려는 경우 다음 스타일을 사용하여 이 작업을 수행할 수 있습니다.
<Style TargetType="{x:Type primitives:DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
</Style>
그러나 각 DataGrid 열에 개별적으로 TextWraping 또는 HorizontalAlignment를 추가해야만 이 작업을 수행할 수 있다는 WPF 기사를 많이 보았습니다.
<toolkit:DataGridTextColumn Binding="{Binding Path=TaxAmount}">
<toolkit:DataGridTextColumn.HeaderTemplate >
<DataTemplate>
<TextBlock Text="Tax Amount" Width="90" TextWrapping="Wrap" HorizontalAlignment="Center"/>
</DataTemplate>
</toolkit:DataGridTextColumn.HeaderTemplate>
</toolkit:DataGridTextColumn>
추가했습니다.

텍스트를 줄바꿈할 헤더 텍스트로 이동합니다.이것은 헤더 텍스트를 어떤 것에 바인딩할 필요가 없을 때 유용합니다.
<DataGridTextColumn x:Name="cAccountNumber"
Header="Account
 Number"
Width="80"
Binding="{Binding Path=AccountNumber}" />
열 이름을 데이터 그리드 열에 직접 할당하는 대신.헤더 속성, 열 이름이 들어 있는 TextBlock을 만들고 TextBlock의 TextWraping 속성을 "Wrap"으로 설정한 다음 TextBlock을 DataGrid Column에 할당했습니다.머리글 속성.이렇게 하면 기본 헤더 기능이 유지됩니다.
예:
<toolkit:DataGridTextColumn Binding="{Binding Path=MyProperty}">
<toolkit:DataGridTextColumn.Header>
<TextBlock Text="Something Longer" TextWrapping="Wrap" />
</toolkit:DataGridTextColumn.Header>
</toolkit:DataGridTextColumn>
글로벌을 생성할 수 있습니다.Style
열 머리글의 경우.예를 들어 마크업을 하지 않으면 구문을 알 수 없지만 다음과 같이 나타납니다.
<Style TargetType="{x:Type dg:ColumnHeader}">
<Setter Property="TextWrapping" Value="Wrap"/>
</Style>
그 이후로Style
키가 없으므로 모든 열 헤더에 자동으로 적용됩니다.또한 스타일은 로컬로 설정된 속성을 재정의하지 않으므로 기존 헤더 기능을 "사용하지 않도록" 설정하지 않습니다.
언급URL : https://stackoverflow.com/questions/1289285/how-do-i-enable-text-wrapping-on-all-column-headers
'programing' 카테고리의 다른 글
분기를 전환하지 않고 '깃 풀'하는 방법(깃 체크아웃)? (0) | 2023.05.27 |
---|---|
NodeJS 및 NPM을 최신 버전으로 업데이트하려면 어떻게 해야 합니까? (0) | 2023.05.27 |
SQL Server Management Studio에서 헤더로 결과 저장 (0) | 2023.05.27 |
Objective-C에서 "instance로 전송된 인식되지 않는 선택기" 오류 (0) | 2023.05.27 |
이 이상한 대장 행동은 무엇을 하는 것입니까? (0) | 2023.05.27 |