2010-08-14 16 views
7

Witam szukam sposobu wyrównania przycisków w moim widoku drzewa tak, że będzie wyglądać w tej samej kolumnie, nawet jeśli jest w dowolnym poziomie. NpJak wyrównać przycisk w widoku drzewa wpf

Item1 [Button] 
Item2 [Button] 
Item3[Button] 

chcę, żeby wyglądać

Item1 [Button] 
Item2 [Button] 
Item3 [Button] 

jakikolwiek sposób, że mogę to zrobić ..?

Odpowiedz

7

Po pierwsze, spójrz na ten wpis na blogu Horizontal stretch on TreeViewItems. Domyślna funkcja ControlTemplate dla TreeViewItem nie pozwala na rozciągnięcie zawartości nagłówka, co będzie potrzebne. Użyj stylu TreeViewItem że autor zaleca, ale zmienić

<Setter Property="HorizontalContentAlignment" Value="Center" /> 

do

<Setter Property="HorizontalContentAlignment" Value="Stretch" /> 

Teraz masz TreeViewItem, gdy zawartość nagłówka rozciąga się na całej szerokości TreeViewItem. Aby uzyskać TreeViewItem do renderowania z tekstem plus przycisk, użyj właściwości ItemTemplate TreeView. Jeśli chcesz po prostu przyciski wyrównany do prawej, można użyć DockPanel:

<TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding ...}"> 
     <DockPanel LastChildFill="False"> 
      <TextBlock DockPanel.Dock="Left" Text="{Binding ...}"/> 
      <Button DockPanel.Dock="Right" Content="{Binding ...}"/> 
     </DockPanel> 
    </HierarchicalDataTemplate> 
</TreeView.ItemTemplate> 

Jeśli zawartość przycisków mogą mieć zmienny rozmiar i chcesz je wszystkie mieć taką samą szerokość, użyj siatki z SharedSizeScope. Ustaw Grid.IsSharedSizeScope="True" w TreeView i następnie w ItemTemplate zrobić coś takiego:

<TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding ...}"> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition/> 
       <ColumnDefinition SharedSizeGroup="Buttons"/> 
      </Grid.ColumnDefinitions> 
      <TextBlock Text="{Binding ...}"/> 
      <Button Grid.Column="1" Content="{Binding ...}"/> 
     </Grid> 
    </HierarchicalDataTemplate> 
</TreeView.ItemTemplate> 
+0

Nicea rozwiązanie, nie myśleć o użyciu HorizontalContentAlignment za to ... –

+0

Dzięki mate..it pracowali dobrze – biju

Powiązane problemy