私は自分のプログラムのための独自のテキストエディタを作ろうとしています。まだテキストを編集することはできません。IsRockboardFocusedは常にOnRender()内にあります。
私のキャレットを表示しようとしたときにうごめきました。
私のOnRender()
メソッドでは、IsKeyboardFocusedメソッドを使用して、キーボードフォーカスがあるかどうかを確認します。キーボードフォーカスがある場合は、その場合は先に進んでカーソルを描画します。
私はキーボードでKeyboard.Focus(MyCustomTextEditor)
を使って自分のコントロールにフォーカスを合わせ、マウスでクリックすると、GotKeyboardFocus
イベントハンドラを使用して傍受すると、フォーカスが正常に渡されたことを示すデバッグメッセージを使用して確認できます。
しかし、私が何をするにしても、IsKeyboardFocused = True
をOnRender()
にすることはできません。私はDebug.Print()
を冒頭、終わり、中央、そしてOnRender()
の中に想像できる場所に置き、結果は常にFalseです。
私の方法はかなり簡単です。私は何が残っていたのか分かりません。これを読んでいただきありがとうございます!
私はあなたのアイデアを使用して、何が起こっていたのか把握しました。私は 'MyCustomTextEditor'の親要素として' ScrollViewer'を使用していました。私のフォーカスは、 'LostFocus'イベントハンドラで' Keyboard.FocusedElement.ToString() 'を使って確認した' ScrollViewer'へのルーティングを続けていました。私の 'ScrollViewer'は' MyCustomTextEditor'にしか使われていないので、これは本当にいいです。あなたの助けをありがとう! –