2012-01-07 15 views

Odpowiedz

19

Można także ustawić wartość FlowDirection na RightToLeft, ale może to spowodować inne problemy. Na przykład zmienia również kierunek przepływu dla zawartości ekspandera, więc może być konieczne ponowne ustawienie przepływu.

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

Innym sposobem podejścia jest umieszczenie ekspandera w wybranym miejscu, bez nagłówka lub zawartości w ekspanderze. Następnie połącz widoczność swojej kontroli treści z właściwościami ekspanderów IsExpanded, używając BooleanToVisibilityConverter.

<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> 

Wadą tego rozwiązania jest to, że nie rozszerza się po kliknięciu nagłówka, ale można go w razie potrzeby łatwo wdrożyć.
Osobiście uważam, że jest to prostsze i bardziej bezpośrednie, zamiast całkowicie zmienić szablon kontrolki. Dodatkową zaletą jest to, że zachowa on wszystkie style już zastosowane w ekspanderze, na przykład podczas korzystania z takich tematów, jak DevExpress lub Telerik.

Powiązane problemy