пунктирной линией, которую вы видите, является ячейка FocusedVisualStyle
, которую необходимо переопределить, чтобы она была пустой.
2 варианта (один из них должен быть правильнымно поскольку у меня не было времени, чтобы попробовать, я не знаю, какой)
- VisualStyle устанавливается непосредственно на ячейку
это означает, что вы должны установитьчерез свойство CellStyle
:
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
</Style>
</DataGrid.CellStyle>
или если вы хотите следовать шаблонным рекомендациям MS:
<DataGrid.Resources>
<!--CellFocusVisual-->
<Style x:Key="CellFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Border>
<Rectangle StrokeThickness="0" Stroke="#00000000" StrokeDashArray="1 2"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.Resources>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="FocusVisualStyle" Value="{StaticResource CellFocusVisual}"/>
</Style>
</DataGrid.CellStyle>
(таким образом, вы можете увидеть, как это делается)
- другой вариант: это делается через
ElementStyle
или EditingElementStyle
, здесь больше хлопот, потому что ElementStyle
и EditingElementStyle
определены в столбце, что означает, что вы должны редактировать ElementStyle
и EditingElementStyle
.
каждого столбца, но в основном это одно и то же: вы устанавливаете FocusVisualStyle в значение null или стиль, определенный выше, с помощьюElementStyle
и / или EditingElementStyle
в каждой колонке