如何隐藏PivotItem标头?

时间:2011-11-04 11:13:14

标签: c# silverlight windows-phone-7

我希望有一个Pivot控件具有PivotItems,但没有透视图项目横向文本(它是横向模式下的图库,当还原为肖像时,它应该再次显示PivotItems标题)。

使文本PivotItem.Header = ""的解决方案不好,因为标题文本占用的空间仍然保留(因此有一个空白空间未使用)。

我该怎么办?

3 个答案:

答案 0 :(得分:6)

您可以将枢轴项的顶部Margin设置为负值以将其移动:

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

它不会删除标题,但您的图库项目将位于其顶部,因此可用空间更多。将此与清除字幕的想法相结合,您就可以找到解决方案。

答案 1 :(得分:3)

更优雅的解决方案:只需使用不可见(但未折叠)的DataTemplate覆盖默认的标题模板:

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

答案 2 :(得分:0)

您可以先保存所有pivotitem的标题,然后将所有pivotitems的标题设置为空字符串,之后,所有pivothead区域都将消失。您可以使用保存的标题信息恢复它们。

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