2009-09-29 16 views
6

Il comportamento predefinito di WPF Tabcontrol è di posizionare le intestazioni Tab adiacenti l'una all'altra, senza spazi vuoti tra loro. Cosa succede se volessi specificare un divario tra le intestazioni? Devo definire un modello di controllo per questo? Sono relativamente nuovo al WFP e ogni aiuto è apprezzato.Spaziatura controllo tabulazione WPF tra le intestazioni

Grazie

risposta

9

credo che sarà necessario definire un modello di controllo personalizzato per l'TabItem, forse anche uno per il TabControl. Ecco un esempio di TabItem che utilizza uno spaziatore per una separazione.

<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> 

Si spera che sia una spinta nella giusta direzione; dovrai comunque aggiungerlo come risorsa di stile e farne riferimento da TabControl -> TabItem.

+1

Ok, ci proverò. Grazie –

3

È facile aggiungere spazio facendolo nel progettista. Seleziona la scheda che desideri spostare, iniziando dalla scheda più a destra. Quindi tieni premuto CTRL e usa il tasto freccia destra per spostare la scheda a destra. Fai lo stesso con il resto delle schede. Quindi puoi regolare manualmente il margine nel codice xaml.

+1

Non c'è bisogno di un designer. I margini cumulativi nel codice funzionano anche così [tab] spazio [tab] [tab] spazio [tab] avrebbe margini sinistro e destro di 0 per la prima scheda, poi x per le seconde due tabulazioni e 2x per l'ultima scheda dove x è la larghezza di "spazio" – byteit101

Problemi correlati