2010-08-14 17 views
7

Merhaba, ağaç görünümündeki düğmeleri hizalamak için bir yol arıyorum, böylece herhangi bir düzeyde olsa bile aynı sütunda görünecektir. Ör:Wpf treeview'deki düğme nasıl ayarlanır

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

ben

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

gibi ben bunu yapabilirsiniz Herhangi bir şekilde bakmak istiyorum ..?

cevap

7

İlk olarak, bu blog girişine bir bakın Horizontal stretch on TreeViewItems. TreeViewItem için varsayılan ControlTemplate, başlık içeriğinin genişletmesine izin vermez, bunu yapmanız gerekecek. Yazar önerir TreeViewItem Stil kullanın, ancak başlık içeriği TreeViewItem tüm genişliği boyunca uzanır nerede

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

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

için

Artık bir TreeViewItem olacak değiştirin. TreeViewItem'in metin ve bir düğme ile işlenmesini sağlamak için TreeView öğesinin ItemTemplate özelliğini kullanın. Düğmelerin içeriği değişken büyüklüğe sahip olabilir varsa

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

ve bunları tüm aynı genişliğe sahip SharedSizeScope ile Izgara kullanmak istiyorum: Sadece düğmeleri sağa hizalanır isterseniz, bir DockPanel kullanabilirsiniz. TreeView Grid.IsSharedSizeScope="True" ayarlayın ve sonra ItemTemplate böyle bir şey yapmak: iyi çalıştı mate..it

<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> 
Güzel çözüm, bunun için HorizontalContentAlignment kullanmanın düşünmüyordu
+0

... –

+0

Teşekkür – biju

İlgili konular