KeyboardNavigation以外でFocusVisualStyleを表示させる

公開日: : Blog, Microsoft , ,

WPFです。

結論としてはリフレクションで無理やりやれなくはなさそうという感じ。
元ネタはMSDN Forumから

FrameworkElement.FocusVisualStyle プロパティ

  • キーボード フォーカスを受け取ったときに適用される外観、効果、またはその他のスタイル特性のカスタマイズを可能にするプロパティ

http://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/Input/KeyboardNavigation.cs,0b7e549aa5f5926f

ShowFocusVisualメソッド

結構ガチガチに判定されているけどキーボードからの操作だよというところだけなんとかしてやればいけそうだった。
リフレクションでInputDeviceをSetして、リフレクションでShowFocusVisualをInvokeする。

private void btn_Click(object sender, RoutedEventArgs e)
{
    txt1.Focus();</p>

<p>}

ShowFocusVisualを見てみると、実体は
Adornerレイヤーにフォーカス状態を示すAdornerを表示させている感じだった。
サイズ計算をする必要はあるが、IsFocusedなどでTriggerを組んで、自前で描画したほうが安全かもしれない。

関連記事

【WPF/XAML】セパレータを縦にする

<Window x:Class="VerticalSeparator&q

記事を読む

Xamarin.Forms で NavigationPage を PushModalAsync すると例外が発生するときがある

Forms 2.3.4.231 Mapコントロールがあるページで、NavigationPage

記事を読む

UWPでユニットテスト

ユニバーサルWindowsのアプリケーションプロジェクトおよびクラスライブラリプロジェクトのユニット

記事を読む

【ストアアプリ】画面遷移の基本①

こんにちは。 Windowsストアアプリをぼちぼち触り始めています。 WindowsRuntim

記事を読む

no image

UWP+IoT Coreのシリアル通信メモ

Windows10 IoT + Raspberry Pi を始めようとしているのだが、どうもセンサー

記事を読む

WordPressでスパムコメント対策

WordPressのスパムコメント対策を行ったのでメモ。 標準でAkismetがインストール済み(

記事を読む

no image

【ストアアプリ】基本的な印刷手順

Windowsストアアプリにて印刷を行う方法を紹介します。 印刷を行うには印刷コントラ

記事を読む

no image

【Swift】SecItemCopyMatchingで複数件を処理

SecItemCopyMatchingを使ってKeyChainからデータを取得する時に 全件取得し

記事を読む

Xamarin iOS, Android での位置情報、Bluetoothの有効化メモ

OSが勝手に出してくれたりくれなかったりのところを整理するためのメモ 諸事情によりサンプルはXama

記事を読む

Xamarin.Forms + Visual Studio Team Services ビルドタスクで自動バージョンアップ

Visual Studio Team Services で Xamarin.Forms の継続的デリ

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑