2011-11-04 10 views
6

Deseo tener un control Pivot que tenga PivotItems pero no elemento pivote Texto del encabezado en el paisaje (es una galería en modo apaisado, cuando se revierte a vertical, debe mostrar el encabezado PivotItems nuevamente).Cómo ocultar el encabezado de PivotItem?

La solución para hacer que el texto PivotItem.Header = "" no sea bueno ya que el espacio ocupado por el texto del encabezado aún está reservado (por lo que hay un espacio en blanco que no se usa).

¿Cómo puedo hacer eso?

+2

Establezca HeaderTemplate. http://stackoverflow.com/questions/4239071/wp7-pivotcontrol-set-header-null – invalidusername

Respuesta

6

Puede configurar el Margin parte superior de los elementos de pivote a un valor negativo para moverlos hacia arriba:

<controls:PivotItem Header="item1" Margin="0,-100,0,0"> 

no elimina la cabecera, pero los elementos de la galería va a estar en la cima de la misma y por lo tanto tener más espacio disponible. Combine esto con su idea de borrar los títulos y podría tener una solución.

3

Una solución más elegante: acaba de anular el HeaderTemplate deafult con un no-visibile (pero NO colapsado) DataTemplate:

<controls:Pivot.HeaderTemplate> 
    <DataTemplate> 
     <StackPanel Height="0" Width="0"> 
      <TextBlock Text="{Binding}" /> 
     </StackPanel> 
    </DataTemplate> 
</controls:Pivot.HeaderTemplate> 
+1

Esta es una solución para Pivot.Header, que no se aplica a PivotItem.Header – lisp

0

primer lugar se puede guardar las cabeceras de todos los PivotItem, a continuación, establecer toda cabecera de los PivotItems' a cadena vacía, después de eso, toda la región del pivot desaparecerá. puede restaurarlos usando la información guardada del encabezado.

private void ResotorePivotItemHeaders() 
    { 
     if (_pivotItemHeaders.Count == pivot.Items.Count) 
     { 
      for (int i = 0; i < _pivotItemHeaders.Count; i++) 
       (pivot.Items[i] as PivotItem).Header = _pivotItemHeaders[i]; 
     } 
    } 



    private void HidePivotItemHeaders() 
    { 
     if (pivot.Items.Count == 0) 
      return; 
     _pivotItemHeaders.Clear(); 

     for (int i = 0; i<pivot.Items.Count; i++) 
     { 
      PivotItem item = pivot.Items[i] as PivotItem; 
      _pivotItemHeaders.Add(item.Header as String); 
      item.Header = ""; 
     } 
    } 
    List<String> _pivotItemHeaders = new List<string>(); 
Cuestiones relacionadas