2012-01-07 27 views

回答

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> 

缺點是當點擊標題時它不會展開,但如果需要可以很容易地實現。
個人而言,我認爲這是更簡單和直接,而不是完全重新設置控件的模板。它還具有額外的好處,就是它將保持已經應用到擴展器的任何樣式,例如使用DevExpress或Telerik等第三方主題時。