2011-03-23 12 views
7

मेरे पास कुछ TabItems के साथ एक WPF TabControl है। मैं TabItems समूह के बाएं और दाएं तरफ मार्जिन चाहता हूं, अगर यह समझ में आता है।WPF टैब मार्जिन

मैं बिंदु बनाने के लिए नीचे कुछ ASCII कला खींचने जा रहा हूं। मैं टैब एक के बाईं ओर एक निश्चित मार्जिन चाहता हूं, लेकिन मैं टैब तीन के दाईं ओर एक निश्चित मार्जिन भी चाहता हूं।

|--------------------------------------------------| 
|   |-----||-----||-----|     | 
| <-Margin-> | 1 || 2 || 3 | <-Margin->  | 
|------------|  ||-----||-----|-----------------| 
|             | 
| How do I get margin or padding on both   | 
| sides of my tabs?        | 
|             | 
|             | 
|--------------------------------------------------| 

टैब की संख्या असीमित है, इसलिए वे और अधिक जोड़े गए हैं, इसलिए वे ढेर होंगे। इसके लिए इसे सही ढंग से काम करने की जरूरत है।

इसके अलावा, ध्यान दें कि मैं पूरा टैब नियंत्रण छोटा नहीं बनाना चाहता हूं। बस टैबिटम टैब या हेडर या जो भी हो।

मुझे पता चला कि यदि मैंने टैब को "60,0, -60,0" जैसे किसी मार्जिन के लिए सेट किया है, तो मुझे टैब के बाईं ओर वांछित प्रभाव मिलता है, लेकिन यह एक हैक जैसा लगता है, और दाएं हाथ के लिए काम नहीं करेगा।

मैं वी.एस. 2010.

चीयर्स में WPF 4.0 उपयोग कर रहा हूँ!

उत्तर

4

इस शैली का उपयोग करने का प्रयास करें।

<Style TargetType="{x:Type TabControl}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type TabControl}"> 
         <Grid> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="Auto"/> 
           <RowDefinition Height="*"/> 
          </Grid.RowDefinitions> 
          <TabPanel 
      Grid.Row="0" 
      Panel.ZIndex="1" 
      Margin="60,0,60,-1" 
      IsItemsHost="True" 
      Background="Transparent" /> 
          <Border 
      Grid.Row="1" 
      BorderBrush="Black" 
      BorderThickness="1" 
      CornerRadius="0, 12, 12, 12" > 
           <Border.Background> 
            <LinearGradientBrush> 
             <GradientStop Color="LightBlue" Offset="0" /> 
             <GradientStop Color="White" Offset="1" /> 
            </LinearGradientBrush> 
           </Border.Background> 
           <ContentPresenter ContentSource="SelectedContent" /> 
          </Border> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

संपादित

आप मार्जिन सीधे tabpanel को TabControl के ControlTemplate

चेक अंदर लिंक के लिए और अधिक

http://www.switchonthecode.com/tutorials/the-wpf-tab-control-inside-and-out

+0

धन्यवाद दे सकते हैं। ऐसा लगता है। लगता है कि जादू उस TabPanel में लगता है। मैं अभी तक इसे समझ में नहीं आता, लेकिन मुझे विश्वास है कि मैं यही चाहता हूं। – Michael

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