2010-04-06 27 views
5

Witam Zastanawiam się, czy można wyrównać przycisk przełącznika na kontrolerze ekspandera WPF na prawą stronę?Jak wyrównać przycisk przełączający WPF Expander

+0

Dlaczego trzeba zrobić tak długotrwały proces, gdy jest prosty proces tutaj w linku podanym poniżej. http://stackoverflow.com/questions/9288342/how-to-put-wpf-expander-toggle-button-on-right –

Odpowiedz

14

Z WPF wszystko jest możliwe. ;) Niestety nie wszystkie rzeczy są proste. Najlepszym rozwiązaniem jest ponowne zaprojektowanie ekspandera. Rozpocznij od skopiowania domyślnego szablonu Expander, znajdującego się pod here.

Następnie znajdź Grid, który zawiera 2 kolumny, jedną zawierającą ToggleButton, drugą zawierającą ContentPresenter. Zamień kolumny tak, aby przełącznik znajdował się w kolumnie 1. Następnie zmień rozmiary definicji kolumn, tak aby pierwsza kolumna była wielkością gwiazdy, a druga to rozmiar 20. Po zakończeniu powinieneś mieć fragment szablonu, który wygląda tak:

<Grid> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*" /> 
    <ColumnDefinition Width="20" /> 
    </Grid.ColumnDefinitions> 
    <ToggleButton Grid.Column="1" 
     IsChecked="{Binding Path=IsExpanded,Mode=TwoWay, 
     RelativeSource={RelativeSource TemplatedParent}}" 
     OverridesDefaultStyle="True" 
     Template="{StaticResource ExpanderToggleButton}" 
     Background="{StaticResource NormalBrush}" /> 
    <ContentPresenter Margin="4" 
     ContentSource="Header" 
     RecognizesAccessKey="True" /> 
</Grid> 

Kontynuuj modyfikowanie szablonu, aż uzyskasz pożądany wygląd.

EDIT: Szablon udostępniony w witrynie MSDN to wersja "prawdziwego" szablonu ekspandera w wersji "bare-bone". Jeśli chcesz stylizowany szablon ekspandera, użyj wyrażenia mieszania i skopiuj istniejący szablon kontrolny z Expander.