Так что я пытаюсь переопределить значение по умолчанию в шаблоне, определенном в ResourceDictionary. Выравнивание по умолчанию остается, но я хочу, чтобы заголовок lefthand column был выровнен справа, а правый столбец столбца был выровнен слева. Остальные данные выравниваются в порядке.Как переопределить DataGridColumnHeader, указанный в моем ResourceDictionary?
В настоящее время, это то, что у меня есть:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Controls/CustomDataGrid.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="CellTextStyleR" TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="TextAlignment" Value="Right"/>
<Setter Property="Margin" Value="2,0,5,0"/>
</Style>
<Style x:Key="CellTextStyleL" TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="TextAlignment" Value="Left"/>
<Setter Property="Margin" Value="5,0,0,0"/>
</Style>
<Style x:Key="HeaderRight" TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource DataGridColumnHeaderStyle}">
<Setter Property="HorizontalContentAlignment" Value="Right"/>
<Setter Property="Margin" Value="2,0,5,0"/>
</Style>
<Style x:Key="HeaderLeft" TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource DataGridColumnHeaderStyle}">
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="Margin" Value="5,0,0,0"/>
</Style>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<DataGrid Grid.Row="0" Grid.Column="1" Style="{StaticResource CustomDataGridStyle}" ItemsSource="{Binding InputDataCollection}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Input Name" Binding="{Binding Name}" Width="50*" ElementStyle="{StaticResource CellTextStyleR}" HeaderStyle="{StaticResource HeaderRight}"/>
<DataGridTextColumn Header="Input State" Binding="{Binding State}" Width="50*" ElementStyle="{StaticResource CellTextStyleL}" HeaderStyle="{StaticResource HeaderLeft}"/>
</DataGrid.Columns>
</DataGrid>
Что происходит вместо этого является то, что текст столбца остается выравнивание по левому краю.
Я также попытался определение непосредственно в сетке, но это просто убивает все форматирование ...
Есть ли способ, чтобы переопределить только выравнивание и отступы, не убивая все другое форматирование?
Благодарим за помощь!
Сами ячейки в порядке. Это проблемы с заголовками. – sailorstar165
О, заголовки столбцов? –
Да. Заголовки столбцов не выравниваются так, как я хочу, с текущим кодом, и все, что я пытаюсь, просто уничтожает все форматирование в целом заголовками столбцов. Извините, если в описании проблемы не было ясно. Я отредактировал его, пытаясь сделать его более ясным. – sailorstar165