2009-09-22 11 views
9

अभी, मैं एक WPF खिड़की है कि इस तरह दिखता है:क्या डब्ल्यूपीएफ टैबकंट्रोल में हेडर को बाएं-संरेखित करना संभव है?

All the tab labels of the TabControl are centered http://img33.yfrog.com/img33/9996/tabcontrolcenteredheade.jpg

मैं इसे करना चाहते हैं यह (फ़ोटोशॉप मरोड़ा छवि) की तरह लग रहे करने के लिए:

All the tab labels of the TabControl are left-aligned http://img42.yfrog.com/img42/6687/tabcontrolleftalignedhe.jpg

इस है ControlTemplate पूरी तरह से फिर से शुरू किए बिना संभव है?

मैंने HorizontalAlignment, HorizontalContentAlignment, आदि के साथ गड़बड़ करने की कोशिश की, लेकिन मैंने कोशिश की कि कुछ भी वांछित प्रभाव नहीं था।


संपादित करें:

All the tab labels of the TabControl are left-aligned, but the tabs don't stretch properly http://img14.imageshack.us/img14/6687/tabcontrolleftalignedhe.jpg

:

अगर मैं इस समाधान (टी लेवेस्क द्वारा की पेशकश की) कोशिश ...

<TabControl...> 
    <TabControl.ItemContainerStyle> 
     <Style TargetType="{x:Type TabItem}"> 
      <Setter Property="HorizontalAlignment" Value="Left"/> 
     </Style> 
    </TabControl.ItemContainerStyle> 
    ... 
</TabControl> 

... मैं इस मिल

जो करीब है, लेकिन यह इस तरह की तरह दिखता है ike एक हिस्टोग्राम।


संपादित करें 2:

रिकॉर्ड के लिए, मैं आर Copsey और टी लेवेस्क की जवाब के संयोजन इस पर पहुंचने के लिए समाप्त हो गया:

<TabControl 
    Margin="0,5,0,0" 
    HorizontalContentAlignment="Left" 
    TabStripPlacement="Left"> 
    <TabControl.ItemContainerStyle> 
     <Style 
      TargetType="TabItem"> 
      <Setter 
       Property="HorizontalAlignment" 
       Value="Stretch" /> 
      <Setter 
       Property="HorizontalContentAlignment" 
       Value="Stretch" /> 
     </Style> 
    </TabControl.ItemContainerStyle> 
    <TabItem 
     Header="Perform System Administration"> 
     ... 
    <TabItem 
     Header="Perform Setup Tasks"> 
     ... 

उत्तर

13

निम्नलिखित आप देखो आप के बाद कर रहे हैं दे देंगे।

<TabControl TabStripPlacement="Left" HorizontalContentAlignment="Left" > 
     <TabItem HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Header="Header 1"> 
      <TabItem.Content>Test</TabItem.Content> 
     </TabItem> 

     <TabItem HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Header="Header 2" > 
      <TabItem.Content>Test</TabItem.Content> 
     </TabItem> 

     <TabItem HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Header="Header Longer Version"> 
      <TabItem.Content>Test</TabItem.Content> 
     </TabItem> 
    </TabControl> 
+0

कि परिणाम वह प्रदान की स्क्रीन शॉट में के लिए ... –

+0

लग रही है मैं तो बस का परीक्षण नहीं देंगे, और सही देखो के साथ कुछ के साथ आया था। –

+0

हाँ, यह चाल है। धन्यवाद! – devuxer

4

नियंत्रण किस तरह आप कर रहे हैं TabItem.Header संपत्ति के लिए उपयोग कर रहे हैं? यदि आप बस लेबल का उपयोग कर रहे हैं, तो क्या आप लेबल की चौड़ाई को कुछ सामान्य मान पर निर्दिष्ट कर रहे हैं? यदि लेबल सामग्री पर आकार दे रहा है तो यह दिखाई देगा जैसा आपने दिखाया है। शीर्ष पाठ प्रदर्शित करने के लिए इस्तेमाल किया लेबल के लिए एक आम चौड़ाई के साथ निम्नलिखित का प्रयास करें:

<TabControl TabStripPlacement="Left" > 
    <TabItem> 
     <TabItem.Header> 
      <Label Width="100">test tab 1</Label> 
     </TabItem.Header> 
     <TabItem.Content> 
      xyz 
     </TabItem.Content> 
    </TabItem> 
    <TabItem> 
     <TabItem.Header> 
      <Label Width="100">test t2</Label> 
     </TabItem.Header> 
     <TabItem.Content> 
      abc 
     </TabItem.Content> 
    </TabItem> 
    <TabItem> 
     <TabItem.Header> 
      <Label Width="100">test tab three</Label> 
     </TabItem.Header> 
     <TabItem.Content> 
      abc 
     </TabItem.Content> 
    </TabItem> 
</TabControl> 
3

आप सभी टैब हेडर के लिए क्षैतिज संरेखण को परिभाषित कर सकते हैं:

<TabControl...> 
    <TabControl.ItemContainerStyle> 
     <Style TargetType="{x:Type TabItem}"> 
      <Setter Property="HorizontalAlignment" Value="Left"/> 
     </Style> 
    </TabControl.ItemContainerStyle> 
    ... 
</TabControl> 
+0

अच्छा विचार है, लेकिन काफी काम नहीं करता है। मैंने यह दिखाने के लिए अपना प्रश्न संपादित किया कि यह क्या करता है। – devuxer

+0

लेकिन 'ItemContainerStyle' सेट करने के विचार के लिए +1 ... बहुत सारे मार्कअप बचाता है। मेरा दूसरा संपादन देखें। – devuxer

1

सीधे शब्दों में विशेषता HorizontalContentAlignment = "बाएँ" TabControl को जोड़ने टैब हेडर छोड़ दिया संयोजित करेगा।

<TabControl 
Margin="0,5,0,0" 
HorizontalContentAlignment="Left" 
TabStripPlacement="Left"> 
<TabItem 
    Header="Perform System Administration"> 
    ... 
<TabItem 
    Header="Perform Setup Tasks"> 
    ... 
संबंधित मुद्दे