डब्ल्यूपीएफ पूरे यूआई ट्री को एक टैब टैप के रूप में मानता है। यह छोटे क्षेत्रों में विभाजित नहीं है जैसे आप उम्मीद करेंगे। इसमें UserControls के अंदर नियंत्रण शामिल है।
उदाहरण के लिए, यदि आप
<StackPanel>
<TextBox Name="TextBox1" />
<MyUserControl />
<TextBox Name="TextBox3" />
</StackPanel>
और MyUserControl
था
<MyUserControl>
<TextBox Name="TextBox2" />
</MyUserControl>
डिफ़ॉल्ट टैब चक्र TextBox1, TextBox2, TextBox3 होगा कैसा दिखता था। ऐसा इसलिए है क्योंकि कोई TabIndex गुण परिभाषित नहीं किए जाते हैं, इसलिए सभी नियंत्रण डिफ़ॉल्ट टैब ऑर्डर पर चलते हैं, यह वह क्रम है जिसमें वे UI में जोड़े जाते हैं।
आप इस तरह के नीचे के रूप में अपने नियंत्रण पर tabindex सेट करते हैं,
<StackPanel>
<TextBox Name="TextBox1" TabIndex="1" />
<MyUserControl TabIndex="2" />
<TextBox Name="TextBox3" TabIndex="3" />
</StackPanel>
आपका tabbing TextBox1, TextBox3, TextBox2 लिए बदल जाएगा। ऐसा इसलिए है क्योंकि टेक्स्टबॉक्स 2 में एक टैबइंडेक्स निर्दिष्ट नहीं है, इसलिए डिफ़ॉल्ट माना जाता है और इसे निर्दिष्ट किए गए टैबइंडेक्स के साथ अन्य सभी नियंत्रणों के बाद टैबबड किया जाता है।
जिस तरह से मैं आमतौर पर इस बारे में मिलता हूं, उपयोगकर्ता नियंत्रण के अंदर UserControl के अंदर TabIndex
को बाध्य करना है। TibIndex।
उदाहरण UserControl करने के लिए बाध्यकारी निम्नलिखित जोड़ने फिर
<MyUserControl>
<TextBox Name="TextBox2" TabIndex="{Binding Path=TabIndex, RelativeSource={RelativeSource AncestorType={x:Type local:MyUserControl}}}" />
</MyUserControl>
मैं आमतौर पर यह बाध्यकारी सेट करने के लिए याद करने के लिए इस UserControl के Loaded
घटना में बाध्यकारी बजाय होने के सेट करने के लिए पसंद करते हैं टैब चक्र सही होगा के लिए UserControl के अंदर सभी नियंत्रणों पर। मुझे यकीन है कि यह करने के भी और अधिक कुशल तरीके हैं, हालांकि समस्या मेरे पास बैठने के लिए पर्याप्त नहीं हुई है और इस कार्यवाही से बचने के लिए टैब स्कॉप्स का सही तरीके से उपयोग करने के तरीके को शोधने के लिए समय निकाला है।
कैसे "एक बार" क्या आप इस इंटरफ़ेस के लिए कोड-बैक में अपने नियंत्रण के लिए TabIndex गुण सेट कर रहे हैं? काम करने के बारे में आपको और स्पष्ट होना चाहिए। कुछ कोड पोस्ट करें। – Bernard
'काम नहीं कर रहे' से आपका क्या मतलब है? क्या यह है कि आपने टैब मारा लेकिन फोकस नहीं चलेगा '? या यह चलता है, लेकिन गलत चला जाता है? किस तरह से यह गलत है? –
क्या आपने [कीबोर्ड नेविगेशन] (http://msdn.microsoft.com/en-us/library/aa969768.aspx#Keyboard_Navigation) कक्षा देखी है? – rfmodulator