WPF

2008-12-11 14 views
80

में टैब ऑर्डर सेट करना मैं WPF में टैब ऑर्डरिंग कैसे सेट करूं? मेरे पास कुछ आइटम विस्तारित किए गए आइटम्स कंट्रोल हैं और कुछ ढह गए हैं और जब मैं टैबबिंग कर रहा हूं तो ध्वस्त लोगों को छोड़ना चाहूंगा।WPF

कोई विचार?

+0

जेसी का प्रस्तावित उत्तर जाने का तरीका है ... –

+0

जो डिफ़ॉल्ट व्यवहार प्रतीत होता है? –

उत्तर

55

आप XAML में तत्व पर KeyboardNavigation.IsTabStop सेट करके टैब अनुक्रम में तत्वों को छोड़ सकते हैं।

KeyboardNavigation.IsTabStop="False" 

आप एक ट्रिगर सेट कर सकते हैं जो इस संपत्ति को विस्तारित स्थिति के आधार पर टॉगल करेगा।

+0

आप फोकसबल = "झूठा" भी हो सकते हैं जो इसे कीबोर्ड फोकस के साथ-साथ टैब ऑर्डर से हटा देता है। –

+1

@ गीफ मैंने बटनों के एक समूह के साथ ऐसा किया और यह काम नहीं किया, बस fyi। – ToastyMallows

-9

इसके अलावा .NET 3.0 में एक कक्षा है जो स्वचालित रूप से टैब ऑर्डर सेट करती है और आप इसे अपने फॉर्म के अनुभागों के आधार पर ओवरराइड कर सकते हैं।

(new TabOrderManager(this)).SetTabOrder(TabOrderManager.TabScheme.AcrossFirst); 
+11

TabOrderManager केवल एक विंडोज़ फॉर्म वर्ग नहीं है? – Krimson

+6

WPF में काम नहीं करता है। – theMayer

+2

यह एक WPF प्रश्न है, विंडोज़ फॉर्म नहीं। – Martin

78

आप स्पष्ट रूप से अपने फार्म में तत्वों के लिए टैब आदेश सेट करना चाहते हैं, तो निम्न जुड़ी संपत्ति मदद करने के लिए माना जाता है:

<Control KeyboardNavigation.TabIndex="0" ... /> 

मैं कहता हूँ के रूप में मैं नहीं है "मदद करने वाले" इसे बहुत भरोसेमंद पाया गया है, हालांकि मुझे शायद इसे और अधिक पढ़ने की आवश्यकता है कि इसका उपयोग कैसे किया जाना है। मैं केवल इस आधा बेक्ड उत्तर पोस्ट करता हूं क्योंकि किसी और ने इस संपत्ति का उल्लेख नहीं किया है।


ध्यान दें कि विन आरटी में, संपत्ति सिर्फ TabIndex="0" है।

+10

चाल है कीबोर्डइविगेशन के विभिन्न मूल्यों के साथ टैबइंडेक्स का उपयोग करना।मूल तत्व में TabNavigation। मैं खुद को "स्थानीय" TabNavigation का उपयोग अक्सर खोजता हूं। :) –

+0

मुझे इसे अपने प्रत्येक नियंत्रण में जोड़ना पड़ा, बजाय उन्हें अलग-अलग स्टैकपैनल्स में जोड़ने की बजाय मेजबान नियंत्रणों को जोड़ना पड़ा। –

+0

मुझे सेटिंग ' सेटिंग मिलती है शीर्ष स्तर पैनलों के प्रवेश बिंदु को ऑर्डर करने में मदद करता है। – avenmore

22

<Control KeyboardNavigation.TabIndex="0" ... /> बिल्कुल ठीक काम करता है ... उदाहरण

<ComboBox Height="23" 
      Margin="148,24,78,0" 
      Name="comboBoxDataSet" 
      VerticalAlignment="Top" 
      SelectionChanged="comboBoxDestMarketDataSet_SelectionChanged" 
      DropDownOpened="comboBoxDestMarketDataSet_DropDownOpened" 
      KeyboardNavigation.TabIndex="0" /> 
<ComboBox Height="23" 
      Margin="148,56,78,0" 
      Name="comboBoxCategory" 
      VerticalAlignment="Top" 
      SelectionChanged="comboBoxDestCategory_SelectionChanged" 
      DropDownOpened="comboBoxDestCategory_DropDownOpened" 
      KeyboardNavigation.TabIndex="1" /> 

के लिए आप इन दो कॉम्बो टैब कुंजी का उपयोग कर बक्से के माध्यम से नेविगेट करने की अनुमति देगा।

9

मुझे लगता है कि वहाँ एक बहुत आसान समाधान यहाँ, अपने नियंत्रण या खिड़की या जो कुछ भी भीतर शीर्ष पर है, तो आप जोड़ सकते हैं:

KeyboardNavigation.TabNavigation="Cycle" 

यह भी स्वत: ढह टैब पर ध्यान नहीं देता।

4

अतीत में मेरे लिए काम करने वाला एक अन्य विकल्प बस सभी स्पष्ट TabIndex कथनों को हटा देना है, और नियंत्रण को एक्सएएमएल में घोषित किए गए आदेश का उपयोग अपने जादू का काम करने दें।

यह निश्चित रूप से आपको अपने नियंत्रणों को पुन: व्यवस्थित करने की आवश्यकता हो सकती है। लेकिन यह एक साधारण कॉपी-पेस्ट ऑपरेशन है।