DataGrid – アクティブセルの枠線を消す(C# WPF)

C#

見た目が美しくないのでセルクリック時にfocusされたことを示す線を消したいですよね。
下の20のAge20のセルの太い黒枠線です。

これを消すには以下のようにします。

<DataGrid.CellStyle>
    <Style TargetType="DataGridCell">
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
    </Style>
</DataGrid.CellStyle>

BorderThicknessは境界線の太さです。0にすれば見えなくなりますね。
FocusVisualStyleって何のことだよ?って思うかもしれません。

FocusVisualStyle はキーボードから操作した時にfocusが当たった時のスタイルです。

見えますかね?ボタンの列ですが、太いBorderは消えましたが、点線の枠が出ています。

ボタンの方が分かりやすいのでこちら。
ボタンの周りに点々がありますよね。これが FocusVisualStyle です。

これも消しておかないと、キーボード操作されたときに見えてしまいますので忘れないように。

コメント