2011-11-04 24 views
6

PivotItems olan bir Pivot kontrole sahip olmak isterim ancak pivot öğesinde yatay başlık yok (bu, yatay modda bir galeri, portre konumuna döndürüldüğünde PivotItems başlığını tekrar göstermelidir).PivotItem Başlığı nasıl gizlenir?

PivotItem.Header = "" numaralı metni yapmak için gereken çözüm, başlık metni tarafından kapsanan alanın hala ayrıldığından (bu nedenle kullanılmayan boş bir alan olduğu için) iyi değildir.

Nasıl yapabilirim?

+2

HeaderTemplate öğesini ayarlayın. http://stackoverflow.com/questions/4239071/wp7-pivotcontrol-set-header-null – invalidusername

cevap

6

Onları yukarı taşımak için negatif bir değere pivot öğelerin üst Margin ayarlayabilirsiniz: başlığı

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

O kaldırmaz, ancak galeri öğeleri bunun üstünde olmak ve böylece edecek daha fazla yer var. Bunu altyazıları temizleme fikrinizle birleştirin ve bir çözümünüz olabilir.

3

daha zarif bir çözüm:

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

Bu, PivotItem.Header için geçerli olmayan Pivot.Header için bir çözümdür. – lisp

0

Önce, sonra bütün pivotitem başlıklarını kaydetmek için tüm pivotitems' başlığı ayarlayabilirsiniz: sadece DataTemplate olmayan bir visibile ile deafult HeaderTemplate geçersiz (daraltılmış fakat DEĞİL) Boş dize, bundan sonra, tüm pivothead bölgeleri kaybolacak. kayıtlı başlık bilgilerini kullanarak bunları geri yükleyebilirsiniz.

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>();