2012-02-15 21 views
8

Domyślnie ekspander ma lewy przycisk przełączający, ale w mojej aplikacji WPF chcę przełączać przycisk po prawej stronie nagłówka bez pomocy funkcji Expression Blend. po prostu XAML i/lub C#. Mój ekspander zawiera pionowo ustawiony panel sterujący, który jako dziecko ma etykiety.Jak wstawić Expander ToggleButton po prawej

Poszedłem po jego część, ale here mówi "Kontrola Expander nie ma żadnych nazwanych części".

Znalazłem przykład here. Ale zastępuje domyślny styl rozszerzenia.

Myślę, że załączony obraz powinien przekazywać to, co chcę. Jak zrobić. Każdy link byłby pomocny.

enter image description here

Odpowiedz

9

Użyj tego:

<Expander Header="Expander1" FlowDirection="RightToLeft"> 
    <TextBlock FlowDirection="LeftToRight"> 
    </TextBlock> 
</Expander> 

Dodaj swoją zawartość w TextBlock, jeśli nie chcesz całej zawartości być prawej do lewej.

+0

@NikhilAgrawal Jak powiedziałem, należy umieścić zawartość wewnątrz pojemnika leftToRight ('TextBlock' w moim przykładzie). Możesz ustawić 'FlowDirection' swojego' StackPanel' na 'LeftToRight'. –

+0

Zrobiłem to, co sugerowałeś. Mój ekspander zawiera pionowo ustawiony panel sterujący (Orientacja = Pionowa), który ma etykiety jako element potomny (Dodany dynamicznie). Ustawiłem ekspander FlowDirection = "RightToLeft" i stackpanel FlowDirection = "LeftToRight" i zadziałało. Dzięki –

15

Jest trik, który może pomóc

<Expander Header="My Expander" 
      FlowDirection="RightToLeft"> 
    <Expander.HeaderTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=Expander}, Path=Header}" 
         Width="{Binding RelativeSource={RelativeSource AncestorType=Expander}, Path=ActualWidth}" 
         Margin="-30,0,0,0" 
         FlowDirection="LeftToRight"> 
      </TextBlock> 
     </DataTemplate> 
    </Expander.HeaderTemplate> 
</Expander> 
+0

Czy możesz wyjaśnić, jak twoja odpowiedź różni się od odpowiedzi MD.Unicorna? –

+1

Tak. Z jego odpowiedzią tekst nagłówka zostanie wyrównany do prawej wraz z ToggleButton. W moim rozwiązaniu tekst nagłówka jest wyrównany do lewej i tylko ToggleButton jest przesuwany z lewej do prawej. – Nitesh

+0

Chociaż pytający nie oczekiwał tej odpowiedzi lub prawdopodobnie nie potrzebował tego, pomógł mi rozwiązać mój własny problem. Twoje zdrowie! –