반응형
DataGrid의 텍스트 정렬
나는 WPF로 프로그래밍하고 있다.DataGrid 제어에서 셀의 중앙 콘텐츠를 만드는 방법이 필요합니다.다음 코드도 사용합니다.
<DataGrid x:Name="dg1" HorizontalAlignment="Left" Margin="10,10,0,0"
VerticalAlignment="Top" Height="360" Width="498"
FontFamily="2 Badr" FontSize="18"
AlternatingRowBackground="LightCoral" FlowDirection="RightToLeft"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
Background="{x:Null}"/>
뭐가 문제죠?
DataGridCell 스타일을 설정해야 합니다.
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
VB에서 동적 DataGrid 열을 하나만 포맷해야 하는 사용자용입니다.커스텀 XAML 스타일로부터의 NET:
응용 프로그램 중.xaml:
<Application.Resources>
<ResourceDictionary>
<Style x:Key="DataGridCellCentered" TargetType="DataGridCell">
<Setter Property="TextBlock.TextAlignment" Value="Center" />
</Style>
</ResourceDictionary>
</Application.Resources>
VB.NET 코드:
Me.MyDataGrid.Columns(5).CellStyle = TryFindResource("DataGridCellCentered")
안부 전해 주세요!
다른 답변에서 언급한 바와 같이:
<Setter Property="HorizontalAlignment" Value="Center" />
이것은 배경과 같은 다른 스타일에 영향을 줍니다.텍스트를 가운데에만 배치하려면 대신 다음과 같이 하십시오.
<Setter Property="TextAlignment" Value="Center" />
스타일을 만들 수도 있습니다.
<Window.Resources>
<Style TargetType="DataGridCell">
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</Window.Resources>
편집 완료.
모든 열에 영향을 줍니다.
<Window.Resources>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</Window.Resources>
DataGridTemplateColumn에 날짜를 중앙으로 배치하려는 경우
<DataGridTemplateColumn SortMemberPath="DataDiNascita" Header="Data di nascita" IsReadOnly="False">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding Path=DataDiNascita,Mode=TwoWay}" VerticalAlignment="Center" HorizontalAlignment="Left">
</DatePicker>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=DataDiNascita,Mode=TwoWay,StringFormat=\{0:dd/MM/yyyy\}}" VerticalAlignment="Center" HorizontalAlignment="Left">
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
WPF DataGrid에서 텍스트를 중앙에 배치하는 방법
<DataGrid >
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="TextBlock.TextAlignment" Value="Center" />
</Style>
</DataGrid.CellStyle>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Label.HorizontalContentAlignment" Value="Center" />
</Style>
</DataGrid.ColumnHeaderStyle>
</DataGrid>
데이터그리드 수평방향 콘텐츠 정렬에서 누가 채워지거나 도킹되는지는 패널에 따라 다르겠지만 중앙 콘텐츠 정렬에서는 작동하지 않습니다. 이렇게 DataGrid.resource 태그를 사용할 수 있습니다.
<DataGrid.Resources>
<Style TargetType="DataGridCell">
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</DataGrid.Resources>
아니면 이쪽을 봐
<DataGrid x:Name="DgvUsers" AutoGenerateColumns="False" IsReadOnly="True" EnableRowVirtualization="False"
HorizontalContentAlignment="Stretch" VerticalContentAlignment="Center" HeadersVisibility="Column"
IsTextSearchEnabled="True" FlowDirection="RightToLeft" SelectionMode="Single" FontFamily="/Sandogh.App;component/Font/#Lalezar" >
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="UserID" Visibility="Collapsed" Binding="{Binding Path=UserID}"/>
<DataGridTextColumn Header="FirstName" Binding="{Binding Path=Name}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="LastName" Binding="{Binding Path=Family}"/>
<DataGridTextColumn Header="Gender" Binding="{Binding Path=TGender}"/>
<DataGridTextColumn Header="UserName" Binding="{Binding Path=UserName}"/>
<DataGridTextColumn Header="Password" Binding="{Binding Path=Password}"/>
<DataGridTextColumn Header="Activity" Binding="{Binding Path=TActivity}"/>
<DataGridTextColumn Header="JobID" Visibility="Collapsed" Binding="{Binding Path=JobID}"/>
<DataGridTextColumn Header="JobName" Binding="{Binding Path=JobName}"/>
</DataGrid.Columns>
</DataGrid>
제 경우는, (매우 간단한)이 정상적으로 동작하고 있습니다.
<DataGrid
x:Name="MyDataGrid"
...
TextBlock.TextAlignment="Center">
</DataGrid>
언급URL : https://stackoverflow.com/questions/18177153/text-alignment-in-datagrid
반응형
'programing' 카테고리의 다른 글
MVVM에서 ViewModelBase를 쓰는 방법 (0) | 2023.04.20 |
---|---|
각 사용자의 최신 레코드 날짜에 대해 sql을 쿼리하려면 어떻게 해야 합니까? (0) | 2023.04.20 |
키와 값의 개별 목록에서 사전(딕트)을 만들려면 어떻게 해야 합니까? (0) | 2023.04.20 |
Interop을 사용하여 Excel 파일에서 빈 행과 열을 제거하는 가장 빠른 방법 (0) | 2023.04.20 |
작업 스케줄러의 WPF 앱에서 DispatcherTimer와 일반 타이머의 비교 (0) | 2023.04.20 |