C# 如何在WPF中以不同方式居中列单元格
这是我的C# 如何在WPF中以不同方式居中列单元格,c#,wpf,datagrid,alignment,C#,Wpf,Datagrid,Alignment,这是我的datagrid,包含7列,下面是我的datagrid中内容的图像: 我应用了下一个代码: <DataGrid Grid.Row="1" VerticalContentAlignment="Center" IsReadOnly="True" AlternatingRowBackground="#E0E4E5" AlternationCount="2" GridLinesVisibility="Horizontal" FontSize="16" RowHeight="35" S
datagrid
,包含7列,下面是我的datagrid中内容的图像:
我应用了下一个代码:
<DataGrid Grid.Row="1" VerticalContentAlignment="Center" IsReadOnly="True" AlternatingRowBackground="#E0E4E5" AlternationCount="2" GridLinesVisibility="Horizontal" FontSize="16" RowHeight="35" SelectionUnit="FullRow" RowHeaderWidth="0" HorizontalGridLinesBrush="Gray" VerticalGridLinesBrush="#EBEBEB" CanUserAddRows="False" MinHeight="200" x:Name="dtgItems" Margin="15,0,4,10" AutoGenerateColumns="False" Background="Transparent" SelectionChanged="dtgItems_SelectionChanged" ScrollViewer.CanContentScroll="False" EnableRowVirtualization ="False" >
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="#0091EA"/>
<Setter Property="Opacity" Value="1"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="Height" Value="40"/>
</Style>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#0091EA"/>
</DataGrid.Resources>
<DataGrid.CellStyle>
<StaticResource ResourceKey="DataGridCentering"/>
</DataGrid.CellStyle>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding OrdinalNumber}" Header="OrdinalNumber" Foreground="Black" FontSize="15" FontFamily="Verdana" Width="10*" />
<DataGridTextColumn Binding="{Binding ArticleCode}" Header="Code" Foreground="Black" FontSize="15" FontFamily="Verdana" Width="10*" />
<DataGridTextColumn Binding="{Binding ArticleTitle}" Header="Title" Foreground="Black" FontSize="15" FontFamily="Verdana" Width="40*" />
<DataGridTextColumn Binding="{Binding Quantity, StringFormat=N2}" Header="Qty" Foreground="Black" FontSize="15" FontFamily="Verdana" Width="10*" />
<DataGridTextColumn Binding="{Binding Price, StringFormat=N2}" Header="Price" Foreground="Black" FontSize="15" FontFamily="Verdana" Width="10*" />
<DataGridTextColumn Binding="{Binding Discount, StringFormat=N2}" Header="Discount" Foreground="Black" FontSize="15" FontFamily="Verdana" Width="10*"/>
<DataGridTextColumn Binding="{Binding TotalAmount, StringFormat=N2}" Header="Total" Foreground="Black" FontSize="15" FontFamily="Verdana" Width="10*"/>
</DataGrid.Columns>
</DataGrid>
那么,如何在不同的单元格/列上应用不同的对齐方式呢
谢谢各位,
干杯
另外,我试过这个:
<DataGrid.Resources>
<Style x:Key="LeftAlignCell" TargetType="DataGridCell">
<Setter Property="VerticalContentAlignment" Value="Left"/>
</Style>
<DataGrid.Resources>
我将ElementStyle应用于我的DataGridTextColumn
但我收到以下错误:未找到请求的剩余值。所以我想它不是这样工作的。你可能想要
<Setter Property="HorizontalContentAlignment" Value="Left" />
因为它是水平对齐,而不是您所说的垂直对齐现在我面临下一个问题:在编辑代码后运行应用程序时,应用程序正在崩溃,我如您所说更改了setter并添加了ElementStyle=“{StaticResource LeftAlign}”到DatagGridTextColumn,然后该应用程序在运行时崩溃,所以现在可以编译了…您已经解决了问题中发布的错误,不是吗?这次坠机是另一个问题吗?接受这个作为答案,用新的detailstrue打开一个不同的特定问题,它现在已经编译好了,但当我尝试应用它时,您认为会出现什么问题?当我尝试应用ElementStyle时,当我删除这一行时,应用程序就不再崩溃了:)还要考虑下面的<代码> CytSype =“{ StaticResource LeftAlignCell }”<代码>
ElementStyle="{StaticResource LeftAlignCell}"
<Setter Property="HorizontalContentAlignment" Value="Left" />