मेरे पास एक WPF TabControl के लिए कस्टम कंट्रोल टेम्पलेट है जो टैबइटम हेडर के बाएं और दाएं हाथ की ओर बटन जोड़ता है। फिलहाल यह एक नामित हिस्सा नहीं है क्योंकि बटन कमांड कंट्रोल टेम्पलेट्स XAML में बंधे हैं और ControlTemplate के बाहर प्रकट होने की आवश्यकता नहीं है।मैं एक WPF TabControl में अतिरिक्त सामग्री कैसे जोड़ सकता हूं?
यह एक बटन के लिए ठीक काम करता है, लेकिन क्या अगर मैं बाईं ओर सामग्री जोड़ना चाहते हैं (या सही) TabItemHeaders जो ControlTemplate के बाहर बाध्य किया जा सकता है ताकि मेरे TabControl अधिक लचीला हो जाता है की हाथ की ओर?
मेरा विचार टैबकंट्रोल को उप-वर्ग करना था और नियंत्रण टेम्पलेट में दो नामित भाग हैं और इन्हें नए नियंत्रण के गुणों के रूप में बेनकाब करना है; कस्टमटैबकंट्रोल। लेफ्टकंटेंट एरिया और कस्टमटाबकंट्रोल। राइटकंटेंट एरिया क्रमशः। प्रत्येक नामित भाग एक सामग्री प्रस्तुतकर्ता है और प्रत्येक सामग्री प्रस्तुतकर्ता सामग्री संपत्ति उपर्युक्त गुणों द्वारा उजागर की जाती है।
हालांकि, जब मैंने कोशिश की तो मैं सामग्री को बाएं और दाएं सामग्री क्षेत्रों में रखने में असमर्थ था।
संपादित करें: बस स्पष्ट होने के लिए मैंने एक छवि शामिल की है। लाल आयताकार दिखाते हैं कि मैं अतिरिक्त सामग्री रखने में सक्षम होना चाहता हूं।
अद्यतन: नीचे प्रगति मैं अब तक बना दिया है की एक स्क्रीन शॉट है, उम्मीद है कि इस में मदद मिलेगी मेरी समस्या समझाने में थोड़ा और अधिक।
स्क्रीन शॉट दो कस्टम टैब और तीन बटनों के साथ मेरा कस्टम टैब नियंत्रण दिखाता है जो वर्तमान में टैबआईटेम हेडर क्षेत्र के दाईं ओर स्थित हैं। बटन वर्तमान में टैबकंट्रोल कस्टम नियंत्रण टेम्पलेट आईई में परिभाषित किए गए हैं। कॉलमडिफिनिशनकंट्रोल टेम्पलेट्स ग्रिड जिसमें स्टैकपैनल है जो 3 बटन होस्ट करता है।
क्या मैं देख रहा हूँ टैब नियंत्रण से उपभोक्ता यह तय करें कि सामग्री टैब के बगल में क्षेत्र में चला जाता है की अनुमति के लिए एक तरीका है। E.G. उपयोगकर्ता इस तरह कुछ करने के लिए सक्षम होना चाहिए:
<local:CustomTabControl>
<local:CustomTabControl.RightContentArea>
<!-- This can be changed to ANY content that the user wants -->
<StackPanel Orientation="Horizontal">
<Button Content="Test" />
<Button Content="Test" />
<Button Content="Test" />
</StackPanel>
</local:CustomTabControl.RightContentArea>
<!-- TabItems are added as normal -->
<TabItem Header="Tab One" />
<TabItem Header="Tab Two" />
</local:CustomTabControl>
मैं संपत्ति उजागर करने का एक तरीका के लिए देख रहा हूँ एक कस्टम नियंत्रण में, इसलिए मैं इसे XAML में बाध्य कर सकता हूं: LeftContentArea = "{StaticResource MyPanelWithLotsOfButtonsControl}"। कस्टम सामग्री को हेडर के बाईं ओर TabItems के बाईं ओर होना आवश्यक है। इससे मुझे एक और समस्या के साथ मदद मिलती है, इसलिए मेरे पास पर्याप्त प्रतिनिधि होने के बाद मैं ऊपर हट जाऊंगा। धन्यवाद। –
आप वास्तव में उन संसाधनों से भी जुड़ सकते हैं। TabItems के बाईं ओर, क्या आप हेडर क्षेत्र में सभी टैब के बाईं ओर मतलब रखते हैं? –
हां। मेरे कस्टम कंट्रोल टेम्पलेट में मैंने एक अतिरिक्त कॉलमडिफिनिशन जोड़ा है ताकि टैब ऑफसेट हो जाएं और मेरी अतिरिक्त सामग्री को जोड़ने के लिए एक जगह है। मैं ऐसी संपत्ति का खुलासा करना चाहता हूं जो मुझे इस क्षेत्र में सामग्री डालने की अनुमति दे। –