c# - 当 IsSelected 时 WPF DataGrid 设置文本换行
问题描述
我正在尝试使用此答案TextWrapping
中显示的相同技术将 WPF DataGrid 行 TextBlock 的属性设置Wrap
为选择该行时。
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="DataGridCell.IsSelected" Value="True">
<Setter Property="Background" Value="LightBlue" />
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
背景颜色变化很好,但似乎没有设置环绕属性。
我也尝试过创建一种TextBlock
样式,但是在访问该IsSelected
属性时遇到了其他问题。我觉得我应该在这里做一个小的改变。
编辑:看起来我也可以沿着样式路线走 each DataGridTextColumn
,尽管我一直在寻找一个更全局的选项,尤其是当列可能会自动生成时。
解决方案
我也尝试过创建
TextBlock
样式,但在访问 IsSelected 属性时遇到了其他问题。
这ElementStyle
应该有效:
<DataGridTextColumn Binding="{Binding Name}" Width="100">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=DataGridCell}}" Value="True">
<Setter Property="TextWrapping" Value="Wrap" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
如果您要自动生成列,则可以将其定义ElementStyle
为资源并处理AutoGeneratingColumn
事件:
private void dataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
DataGrid dataGrid = (DataGrid)sender;
DataGridTextColumn column = e.Column as DataGridTextColumn;
if (column != null)
{
column.ElementStyle = dataGrid.Resources["ElementStyle"] as Style;
}
}
XAML:
<DataGrid x:Name="dataGrid" AutoGeneratingColumn="dataGrid_AutoGeneratingColumn">
<DataGrid.Resources>
<Style x:Key="ElementStyle" TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=DataGridCell}}" Value="True">
<Setter Property="TextWrapping" Value="Wrap" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
</DataGrid>
推荐阅读
- javascript - req.user 没有被派去做出反应
- amazon-web-services - ec2 上的 Scrapy 和烧瓶
- python - PyOpt 安装导致对 `__intrinsic_setjmpex' 的未定义引用
- sql - 从项目数据库中为项目列表创建 sql 查询
- typescript - 配置 Typescript 以使用 html 模块
- python - Python底图m.arcgisimage在保存图像时不显示服务,但在使用plt.show时显示
- python - 在 Google Colab 中恢复 TensorFlow 模型失败
- python - 使用 SQLAlchemy DateTime 字段查询天数的数据?
- php - 空字符串验证不需要的整数
- sublimetext3 - Sublime - 仅替换文件中的某些区域