xaml - Synchronizing WPF control widths in a WrapPanel -


मेरे पास यह मामला है

  & lt; wrappanel & gt; & Lt; चेकबॉक्स & gt; वास्तव में लंबा नाम & lt; / चेकबॉक्स & gt; & LT; चेक बॉक्स & gt; लघु & lt; / चेक बॉक्स & gt; & Lt; चेकबॉक्स & gt; अधिक बार फिर & lt; / चेकबॉक्स & gt; & LT; चेक बॉक्स & gt; फू & lt; / चेक बॉक्स & gt; & Lt; स्लाइडर मिनवाइड = "200" / & gt; & Lt; / WrapPanel & gt;  

मैं सभी चेकबॉक्स को वैरपैनेल के भीतर एक ही चौड़ाई में रखना चाहता हूं।

निम्न जोड़ना वांछित प्रभाव को पूरा करता है

  & LT; WrapPanel.Resources & gt; & Lt; शैली TargetType = "चेकबॉक्स" आधारितऑन = "{स्टेटिक रिसोर्स {x: टाइप चेकबॉक्स}}" & gt; & Lt; सेटर संपदा = "मिनवाइड" मान = "75" / & gt; & Lt; / शैली & gt; & LT; /WrapPanel.Resources>  

हालांकि, मैं एक विशिष्ट चौड़ाई को हार्डकोड नहीं करना चाहता, बल्कि सबसे बड़ा चेकबॉक्स चौड़ाई निर्धारित करें (उपरोक्त भी विफल अगर कोई चौड़ाई> 75)।

स्लाइडर स्वतंत्र है और चेकबॉक्सेज़ से बड़ा होने की अनुमति दी जानी चाहिए।

मैं एक ग्रिड (IsSharedSizeScope के साथ) का उपयोग नहीं करना चाहता हूँ क्योंकि मुझे कॉलम की एक हार्डकोड संख्या नहीं चाहिए।

< P> एक दिलचस्प समाधान प्रस्तुत करता है, लेकिन कस्टम नियंत्रण या सी # कोड का उपयोग किए बिना समस्या को हल करना अच्छा होगा।

ऐसा करने का सबसे अच्छा तरीका क्या है, प्राथमिक रूप से एक्सएएमएल में ही?

<पूर्व> & lt; WrapPanel ग्रिड। आईशर्डसिज़ स्कीप = "ट्रू" & gt; & LT; WrapPanel.Resources & gt; & Lt; शैली TargetType = "{x: प्रकार चेकबॉक्स}" & gt; & Lt; सेटर संपदा = "खाका" & gt; & LT; Setter.Value & gt; & Lt; ControlTemplate TargetType = "{x: प्रकार चेकबॉक्स}" & gt; & Lt; ग्रिड पृष्ठभूमि = "लाइटब्लू" & gt; & LT; Grid.ColumnDefinitions & gt; & Lt; कॉलमडिफ़िनिशन शेयर्डसमूह = "WrapPannelGroup" / & gt; & LT; /Grid.ColumnDefinitions> & Lt; चेकबॉक्स स्टाइल = "{x: नल}" इस्चैक्ड = "{इस्लामिक बाइंडिंग}" & gt; & Lt;! - अन्य टेम्पलेट बाइंडिंग - & gt; & LT; CheckBox.Content & gt; & Lt; सामग्रीप्रदर्शक / & gt; & LT; /CheckBox.Content> & Lt; / चेक बॉक्स & gt; & Lt; / ग्रिड & gt; & Lt; / ControlTemplate & gt; & LT; /Setter.Value> & Lt; / सेटर & gt; & Lt; / शैली & gt; & LT; /WrapPanel.Resources> & Lt; चेकबॉक्स & gt; वास्तव में लंबा नाम & lt; / चेकबॉक्स & gt; & LT; चेक बॉक्स & gt; लघु & lt; / चेक बॉक्स & gt; & Lt; चेक बॉक्स IsChecked = "True" & gt; लंबे समय से फिर से & lt; / Checkbox & gt; & LT; चेक बॉक्स & gt; फू & lt; / चेक बॉक्स & gt; & Lt; स्लाइडर मिनवाइड = "200" / & gt; & Lt; / WrapPanel & gt;

यहां हम सभी चेकबॉक्स को बिना स्क्रैप के बिना एक स्क्रैपिंग कर रहे हैं, बजाय एक ग्रिड से घिरे चेकबॉक्स। हालांकि, इसके कारण हमें सभी चेकबॉक्स गुणों को फिर से बाध्य करने की आवश्यकता है जो हम बनाए रखना चाहते हैं। हालांकि यह बोझ उठाना पड़ सकता है, यह एक शुद्ध एक्सएएमएल दृष्टिकोण के लिए भी अनुमति देता है।


Comments