2010-08-14 24 views
7

हाय मैं एक तरह से मेरी treeview में बटन संरेखित करने के लिए इतना है कि यह एक ही स्तंभ भले ही वह किसी भी स्तर में है में कैसे दिखेंगे रहा हूँ पर बटन संरेखित करने के लिए कैसे। उदाहरण के लिए:WPF treeview

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

मैं इसे पसंद

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

देखने के लिए किसी भी तरह से है कि मैं यह कर सकता हूँ चाहते हैं ..?

उत्तर

7

पहले, इस ब्लॉग प्रविष्टि Horizontal stretch on TreeViewItems पर एक नज़र डालें। TreeViewItem के लिए डिफ़ॉल्ट ControlTemplate हेडर सामग्री को फैलाने की अनुमति नहीं देता है, जिसे आपको करने की आवश्यकता होगी। TreeViewItem शैली का प्रयोग है कि लेखक की सिफारिश की गई है, लेकिन बदलने

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

को

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

अब आप एक TreeViewItem होगा जहां हेडर सामग्री TreeViewItem की पूरी चौड़ाई में फैला है। TreeViewItem को टेक्स्ट प्लस बटन के साथ प्रस्तुत करने के लिए, TreeView की ItemTemplate प्रॉपर्टी का उपयोग करें। तुम सिर्फ बटन दाएँ संरेखित चाहते हैं, आप एक 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> 

बटन की सामग्री को चर आकार हो सकता है और आप उन सब को, एक ही चौड़ाई SharedSizeScope के साथ एक ग्रिड का उपयोग करना चाहते। TreeView में Grid.IsSharedSizeScope="True" सेट और फिर अपने ItemTemplate में कुछ इस तरह करते हैं:

<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

अच्छा समाधान है, मुझे लगता है कि के लिए HorizontalContentAlignment का उपयोग करने का नहीं सोचा था ... –

+0

धन्यवाद mate..it अच्छी तरह से काम – biju

संबंधित मुद्दे