2012-01-07 11 views

उत्तर

5

आपको नियंत्रण के टेम्पलेट को पुन: स्थापित करना होगा। यहां एक उदाहरण दिया गया है: http://patconroy.wordpress.com/2008/12/18/restyling-the-wpf-expander-control/

+0

धन्यवाद, अच्छा एक – Sender

+2

@ उपयोगकर्ता 108: यदि यह आपके प्रश्न का उत्तर देता है, तो आपको इसे स्वीकार करने के रूप में चिह्नित करना चाहिए। –

19

आप FlowDirection को RightToLeft पर भी सेट कर सकते हैं, लेकिन इससे अन्य समस्याएं हो सकती हैं। उदाहरण के लिए यह विस्तारक की सामग्री के लिए प्रवाह दिशा भी बदलता है ताकि आपको इसे वापस सेट करने की आवश्यकता हो।

<Expander FlowDirection="RightToLeft"> 
    <StackPanel FlowDirection="LeftToRight"> 
    </StackPanel> 
</Expander> 
0

इस तक पहुंचने का एक और तरीका विस्तारक में किसी भी शीर्षलेख या सामग्री के बिना, जहां आप चाहें विस्तारक को स्थिति में रखना है। फिर BooleanToVisibilityConverter का उपयोग करके विस्तारक IsExpanded संपत्ति पर अपनी सामग्री-नियंत्रण की दृश्यता को बाध्य करें।

<StackPanel> 
    <StackPanel.Resources> 
     <BooleanToVisibilityConverter x:Key="boolToVisibility" /> 
    </StackPanel.Resources> 
    <DockPanel> 
     <Expander DockPanel.Dock="Right" x:Name="rightAlignedExpander" /> 
     <TextBlock Text="Expanders header" VerticalAlignment="Center" /> 
    </DockPanel> 
    <Grid Visibility="{Binding IsExpanded, ElementName=rightAlignedExpander, Converter={StaticResource boolToVisibility}}"> 
    <TextBlock Text="Expanders content"/> 
    </Grid> 
</StackPanel> 

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

संबंधित मुद्दे