C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトで、Xamlで追加したコントロールにフォーカスが設定された際に表示される枠線を非表示にする方法です。
この記事は、Microsoft公式ページの「XAMLスタイル」を参考に書いています。
フォーカス時に表示される枠線
例えば、下のイメージは表示スタイルを変更したButtonコントロールを表示した場合です。Xaml内に他コントロールが無い場合に既定値としてフォーカスが設定されています。
Buttonコントロールのスタイルを変更する詳しい手順は、別記事をご覧ください。
FocusVisualPrimaryBrushを変更
Buttonコントロールの[BorderSolidBrush]などのプロパティを編集してもフォーカス時に表示される枠線を消すことができません。
フォーカス時の枠線を変更するには[FocusVisualPrimaryBrush]を利用します。
具体的には、Xamlの編集画面でButtonコントロールに次のようなコードを追加します。
<Button x:Name="mybutton" FocusVisualPrimaryBrush="Transparent" FocusVisualSecondaryBrush="Transparent">
</Button>
枠線は[FocusVisualPrimaryBrush]と[FocusVisualSecondaryBrush]の2種類があり、外側と内側で2色が使い分けられています。
[FocusVisualPrimaryBrush]に赤色(Red)、[FocusVisualSecondaryBrush]に緑色(Green)を設定すると下の画像のように表示されます。
フォーカス時の枠線を完全に非表示にするには、両方の設定値を[Transparent(透明)]に設定します。
まとめ
今回は短い記事ですが、Visual StudioのWinUI3プロジェクトで、Xamlに追加したButtonコントロールなどにフォーカスが設定された場合に表示される枠線を非表示する方法について書きました。
コントロールの[FocusVisualPrimaryBrush]と[FocusVisualSecondaryBrush]の色設定を透明などに設定することで枠線を非表示にできます。
C#のWinUI 3アプリでコントロールのフォーカス時に枠線を非表示にしたい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。