WPFのItemsControlは、フォーカスがあると判断し、ユーザーがTabキーまたはAltキーを押すとフォーカス矩形を表示します。なぜ、ItemsControlは、その親がフォーカスされているときにフォーカス矩形を表示しますか?
しかし、にフォーカスがない場合でも、最近、ItemsControlにフォーカス矩形が表示されました。 - その親の1つが行いました。 ItemsControlは、がにフォーカスした別のUserControlの中にあったUserControl内にありました。このような何か:
<!-- UserControl1.xaml; this is the control that has focus -->
<UserControl x:Class="UserControl1" Focusable="True" ...>
<UserControl2/>
</UserControl>
<!-- UserControl2.xaml -->
<UserControl x:Class="UserControl2">
<ItemsControl .../>
</UserControl>
あるいは、視覚的に入れ子に示していないします、フォーカス矩形から来た場所を把握することは私にしばらく時間がかかった
+---------------------------------------------------+
| UserControl1 (has focus) |
| |
| +-----------------------------------------------+ |
| | UserControl2 | |
| | | |
| | +-------------------------------------------+ | |
| | | ItemsControl (shows focus rectangle) | | |
(およびStackOverflow question)のIので、決してフォーカス矩形を表示するためのフォーカスがないコントロールが必要です。
私はまだWPFの周りで自分のやり方を学んでいますが、明らかに私はまだ十分ではない、またはこれは私を混乱させないでしょう。私が理解しやすくするために、2つの質問:
- なぜそれが実際にフォーカスがないときのItemsControlがフォーカス矩形を表示するが、その親コントロールの1はありませんでしょうか?この機能の理由は何ですか? WPFの仕組みや哲学についての十分な理解はまだありません。
- はどのように機能しますか? ItemsControlはフォーカス矩形を表示する必要があると判断するメカニズムは何ですか?