لماذا ItemsControl إظهار مستطيل التركيز عند الأم هو مركز ؟

StackOverflow https://stackoverflow.com/questions/820125

سؤال

WPF هو ItemsControl عرض مستطيل التركيز عندما يعتقد أنه يجب التركيز المستخدم بالضغط على Tab أو مفتاح Alt.

ولكن مؤخرا كان ItemsControl عرض مستطيل التركيز على الرغم من أنه لم يكن التركيز - واحد من الآباء.على 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)      | | |

استغرق الأمر مني بعض الوقت (و ستاكوفيرفلوو السؤال) لمعرفة مكان مستطيل التركيز كان قادما من, لأنني لم أتوقع السيطرة التي لم تركز على إظهار مستطيل التركيز.

أنا لا تزال التعلم طريقي WPF, و من الواضح أنا لا أعرف ما يكفي بعد ، أو لم يكن الخلط لي.سؤالين مساعدتي في فهم ما يلي:

  1. لماذا لا ItemsControl عرض مستطيل التركيز عندما لا يكون في الواقع التركيز ، ولكن أحد الوالدين الضوابط ؟ ما هو سبب هذه الميزة ؟ (أنا متأكد من أن هناك واحد -- ربما أن تفعل شيئا مع قوالب أو البصرية الأشجار ؟ - أنا فقط لم يكن لديك فهم عميق بما فيه الكفاية من WPF الميكانيكا و الفلسفة حتى الآن.)
  2. كيف يعمل هذا ؟ ما هي آلية ItemsControl يستخدم تقرر أنه يجب أن يتم عرض التركيز المستطيل ؟
هل كانت مفيدة؟

المحلول

هل أنت متأكد من أن ItemsControl لا يجب التركيز ؟ إذا كان الرسم التركيز المستطيل ، ينبغي.فقط لأن تحكم أعلى في شجرة البصرية وتركز لا يعني أن أحد الأطفال لا تركز أيضا.أن نفهم لماذا ، تأكد من أن كنت قد تعلمت الفرق بين "من المنطقي التركيز" و "تركيز لوحة المفاتيح" في WPF.هناك exaustive تفسير على MSDN.

نصائح أخرى

أعتقد أن هذا هو حسب التصميم.ما أفهمه هو أن يتم التركيز الموروثة من الوالدين مراقبة يعمل في طريقها إلى أسفل شجرة البصرية.محاولة دراسة النمط البصري من itemscontrol الوالدين ثم itemscontrol نفسها لمعرفة ما يجري مع visual شجرة xaml.التي ينبغي أن تكشف عن بعض القرائن على ما يحدث.كما يمكنك محاولة البحث جوجل وبعض المواقع للحصول على معلومات حول التركيز itemscontrol ، إلخ.قد يكون هناك بعض معلومات أخرى هناك أن يعطي المزيد من التفاصيل حول كيف أن جميع الأعمال التي هي أوضح من كيف أستطيع شرح ذلك.ماذا يحدث إذا قمت بالنقر فوق itemscontrol ثم انقر في أي مكان آخر ثم انقر فوق الوالد ؟ أي تغيير في التركيز ؟ يمكنك أيضا محاولة جعل فئة مخصصة يتجاوز التركيز وتجعل من ذلك التحكم لا تظهر التركيز بنفس الطريقة.يجب أن يكون (إلى حد ما) من السهل القيام به.قد يكون هناك معلومات عن أن بعض المواقع/بلوق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top