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
Odpowiedz
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
.
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 –