いくつかの入力コントロール (テキスト ボックスなど) をホストする ItemsControl があります。ItemsControl の背景をクリックすると、フォーカスが ItemsControl の最初の項目に自動的に変更されます。
これを防ぐ方法はありますか?base を呼び出さずに ItemsControl の OnGotFocus をオーバーライドしようとしましたが、うまくいきませんでした。
ありがとうございます!
ジャック。
いくつかの入力コントロール (テキスト ボックスなど) をホストする ItemsControl があります。ItemsControl の背景をクリックすると、フォーカスが ItemsControl の最初の項目に自動的に変更されます。
これを防ぐ方法はありますか?base を呼び出さずに ItemsControl の OnGotFocus をオーバーライドしようとしましたが、うまくいきませんでした。
ありがとうございます!
ジャック。
わかりました。最初の要素に焦点が当てられる原因を突き止めました。私の場合、カスタムItemsControlをホストしているScrollViewerを使用しています。ItemsControlとその中のコンテナでは、IsTabStopがfalseに設定されています。フォーカスの変更は、OnMouseLeftButtonDownメソッドのScrollViewerによって行われます。
ScrollViewerは封印されているため、コンテナのOnMouseLeftButtonDownとItemsControlをオーバーライドして、e.Handledをtrueに設定する必要がありました。これで私の問題は解決しました。