2009-09-29 35 views
6

Domyślne zachowanie TabFontrola WPF polega na umieszczeniu nagłówków kart obok siebie, bez pustego miejsca pomiędzy nimi. Co się stanie, jeśli chcę określić różnicę między nagłówkami? Czy muszę zdefiniować szablon kontrolny dla tego? Jestem względnie nowy w WFP i każda pomoc jest doceniana.Odstępy między zakładkami w sterowniku WPF

Dzięki

Odpowiedz

9

wierzę, trzeba będzie zdefiniować szablon Custom Control dla TabItem, może nawet jeden na TabControl. Oto przykład TabItem, który używa separatora do pewnego rozdzielenia.

<Style 
    x:Key="SpacedTab" 
    TargetType="{x:Type TabItem}"> 
    <Setter 
     Property="Template"> 
     <Setter.Value> 
      <ControlTemplate 
       TargetType="{x:Type TabItem}"> 
       <Border 
        x:Name="Spacer" 
        Width="Auto" 
        Height="Auto" 
        Padding="0 0 5 0" 
        Margin="0 0 0 0" 
        BorderBrush="Transparent" 
        BorderThickness="0"> 
        <Border 
         x:Name="Border" 
         MinWidth="150" 
         Width="Auto" 
         Height="30" 
         Background="Gray" 
         BorderBrush="DarkGray" 
         BorderThickness="0,0,0,0" 
         CornerRadius="6,6,0,0" 
         Cursor="Hand" 
         VerticalAlignment="Bottom"> 
         <ContentPresenter 
          x:Name="ContentSite" 
          TextElement.FontSize="10pt" 
          TextElement.FontFamily="Arial" 
          TextElement.Foreground="Black" 
          VerticalAlignment="Center" 
          HorizontalAlignment="Center" 
          ContentSource="Header" 
          Margin="8,3,8,3" 
          Width="Auto" 
          Height="Auto" /> 
        </Border> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Mam nadzieję, że jest to przesuwanie we właściwym kierunku; nadal będziesz musiał dodać to jako źródło stylów i odwoływać się do niego z TabControl -> TabItem.

+1

OK, wypróbuję to. Dzięki –

3

Łatwo jest dodać miejsce, robiąc to w projektancie. Wybierz kartę, którą chcesz przenieść, zaczynając od prawej karty. Następnie przytrzymaj klawisz Ctrl i użyj klawisza strzałki w prawo, aby przesunąć kartę w prawo. Zrób to samo z pozostałymi zakładkami. Następnie możesz ręcznie ustawić margines w kodzie XAML.

+1

Nie ma potrzeby projektanta. Skumulowane marginesy w kodzie działają również tak [tab] space [tab] [tab] space [tab] miałby lewy i prawy margines 0 dla pierwszej zakładki, potem x dla dwóch pierwszych zakładek i 2x dla ostatniej karty, gdzie x to szerokość "przestrzeni" – byteit101

Powiązane problemy