在启用文本换行的情况下,在编辑模式下从 DataGridCell 中删除边框
Remove border from DataGridCell in edit mode while text wrap is enabled
我有一个数据网格,我不想在任何时候显示网格线。
我几乎已经用下面的代码工作了:
<DataGrid
AutoGenerateColumns="False" Height="Auto"
Name="dataGrid1" Width="504"
ItemsSource="{Binding SourceCollection}"
DockPanel.Dock="Top" GridLinesVisibility="None"
CanUserSortColumns="False"
ColumnWidth="Auto" HeadersVisibility="None"
FontSize="16" FontFamily="Tahoma" MinRowHeight="30">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding index}" />
<DataGridTextColumn Binding="{Binding des}" Width="20*">
</DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.CellStyle>
<Style>
<Style.Triggers>
<Trigger Property="DataGridCell.IsSelected" Value="True">
<Setter Property="DataGridCell.Background" Value="White" />
<Setter Property="DataGridCell.Foreground" Value="Black" />
<Setter Property="DataGridCell.BorderBrush" Value="White" />
<Setter Property="DataGridCell.BorderThickness" Value="1" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid>
但是一旦我为第二列启用文本换行,在编辑模式下单元格周围就会显示一条蓝线
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>
<DataGridTextColumn.EditingElementStyle>
<Style>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.EditingElementStyle>
那么如何在编辑模式下删除 DataGridCell
中的蓝线,同时保留 TextWrap 选项?
对于元素样式,您可以使用 TextBlock,对于元素编辑样式,您可以使用文本框,并将其 borderthickness 设置为 0
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}" >
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="{x:Type TextBox}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.EditingElementStyle>
我有一个数据网格,我不想在任何时候显示网格线。
我几乎已经用下面的代码工作了:
<DataGrid
AutoGenerateColumns="False" Height="Auto"
Name="dataGrid1" Width="504"
ItemsSource="{Binding SourceCollection}"
DockPanel.Dock="Top" GridLinesVisibility="None"
CanUserSortColumns="False"
ColumnWidth="Auto" HeadersVisibility="None"
FontSize="16" FontFamily="Tahoma" MinRowHeight="30">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding index}" />
<DataGridTextColumn Binding="{Binding des}" Width="20*">
</DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.CellStyle>
<Style>
<Style.Triggers>
<Trigger Property="DataGridCell.IsSelected" Value="True">
<Setter Property="DataGridCell.Background" Value="White" />
<Setter Property="DataGridCell.Foreground" Value="Black" />
<Setter Property="DataGridCell.BorderBrush" Value="White" />
<Setter Property="DataGridCell.BorderThickness" Value="1" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid>
但是一旦我为第二列启用文本换行,在编辑模式下单元格周围就会显示一条蓝线
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>
<DataGridTextColumn.EditingElementStyle>
<Style>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.EditingElementStyle>
那么如何在编辑模式下删除 DataGridCell
中的蓝线,同时保留 TextWrap 选项?
对于元素样式,您可以使用 TextBlock,对于元素编辑样式,您可以使用文本框,并将其 borderthickness 设置为 0
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}" >
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="{x:Type TextBox}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.EditingElementStyle>