gpt4 book ai didi

wpf - 如何使 WPF DataGrid 单元格右对齐而不使新行上的可选区域变小?

转载 作者:行者123 更新时间:2023-12-03 05:45:35 26 4
gpt4 key购买 nike

我正在使用 WPF4.0 DataGrid。双击新行中的单元格时,一切正常除非我已向该列添加了单元格样式。例如,我有一个数字列,我希望数据右对齐,因此 xaml 看起来像这样

<DataGridTextColumn Binding="{Binding Path=ImpaId}"
CellStyle="{StaticResource CellRightAlign}">
<DataGridTextColumn.Header>
<TextBlock Style="{StaticResource DataGridHeader}">Impa</TextBlock>
</DataGridTextColumn.Header>
</DataGridTextColumn>

共享资源中的样式只是:

<Style x:Key="CellRightAlign">
<Setter Property="Control.HorizontalAlignment"
Value="Right" />
</Style>

新行上生成的可选区域在图像中显示为小蓝色区域。这是用户要点击的非常小的目标,而这恰好是他们最有可能想要开始的列一个新行。

DataGrid cell with tiny width

如果我删除 CellStyle,该区域将按预期工作,但当然我会失去正确的对齐方式。

DataGrid cell with proper width

有谁知道如何实现这两者吗?

我尝试过的事情

  1. 将绑定(bind)上的 TargetNullValue 设置为具有一定宽度的格式。这适用于现有行,但对新行没有影响。
  2. 在列上设置 MinWidth,这不会影响新可选行的宽度面积。

有效的方法:

使用 @AngelWPF 的答案中的信息,我能够从使用 CellStyle 更改为使用 ElementStyle,如下所示:

<DataGridTextColumn Binding="{Binding Path=ImpaId}"
CellStyle="{StaticResource CellRightAlign}">

成为

<DataGridTextColumn Binding="{Binding Path=ImpaId}"
ElementStyle="{StaticResource CellRightAlign}">

最佳答案

您可以在目标为 TextBlockDataGridTextColumn 上应用 ElementStyle 并将其右对齐,这样就可以了。

      <DataGridTextColumn Binding="{Binding Path=ImpaId}">
<DataGridTextColumn.Header>
<TextBlock Style="{StaticResource
DataGridHeader}">
Impa
</TextBlock>
</DataGridTextColumn.Header>
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Right" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

关于wpf - 如何使 WPF DataGrid 单元格右对齐而不使新行上的可选区域变小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800367/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com