Как скрыть заголовок PivotItem? - PullRequest
6 голосов
/ 04 ноября 2011

Я хочу, чтобы элемент управления Pivot имел PivotItems, но не имел элемента сводки. Текст заголовка в альбомной ориентации (это галерея в альбомной ориентации, при возврате в книжную ориентацию должен снова отображаться заголовок PivotItems).

Решение сделать текст PivotItem.Header = "" не подходит, так как пространство, занимаемое текстом заголовка, все еще зарезервировано (поэтому есть пробел, который не используется).

Как я могу это сделать?

Ответы [ 3 ]

6 голосов
/ 05 ноября 2011

Вы можете установить верхнюю Margin ваших сводных позиций на отрицательное значение, чтобы переместить их вверх:

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

Он не удаляет заголовок, но ваши элементы галереи будут располагаться поверх него и, следовательно, будут иметь больше свободного места. Объедините это с вашей идеей очистки подписей, и вы сможете найти решение.

3 голосов
/ 14 сентября 2013

Более элегантное решение: просто переопределите глухой HeaderTemplate с невидимым (но НЕ свернутым) DataTemplate:

<controls:Pivot.HeaderTemplate>
    <DataTemplate>
        <StackPanel Height="0" Width="0">
             <TextBlock Text="{Binding}" />
        </StackPanel>
    </DataTemplate>
</controls:Pivot.HeaderTemplate>
0 голосов
/ 19 сентября 2015

Вы можете сначала сохранить заголовки всех сводных элементов, а затем установить заголовок всех сводных элементов в пустую строку, после чего вся область сводных заголовков исчезнет.Вы можете восстановить их, используя сохраненную информацию заголовка.

  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>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...