0

Возможно ли создать Pivot с одним PivotItem и несколькими заголовками для создания эффекта, например, несколько PivotItem s, но отображается один.Pivot с несколькими элементами заголовка и одним PivotItem

Все элементы поворота будут одного типа и будут иметь один шаблон.

Одна из проблем заключается в том, что мой Pivot содержит только один элемент, тогда стержень становится необратимым (непересекающимся).

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

Я попытался изменить стиль поворота, но пока не повезло. Может быть, кто-то создал нечто подобное и может помочь мне.

+1

Я думаю, что вы можете иметь несколько 'PivotItem's, и поставить содержание в первом пункте, и обрабатывать его Событие «SelectionChanged» для удаления вашего содержимого из одного «PivotItem» и добавления его в другое. Это отвечает вашим требованиям? – Abhishek

+0

Фактически он работает. Я использую Caliburn.Micro, поэтому мне нужно было создать несколько хаков, но оно работает. Единственное, что вам нужно сделать, это всегда очищать содержимое элементов, которые не видны. Поместите свой комментарий в отдельный ответ, чтобы я мог отметить его как ответ на мой вопрос. спасибо –

ответ

1

Вы можете создать несколько PivotItem и один контент. Первоначально ваш контент будет в первом PivotItem. Затем в событии SelectionChanged удалите свой контент с предыдущих PivotItem (установите его содержимое null) и добавьте его в текущий выбранный.

Вот пример:

<phone:Pivot x:Name="myPivot" Title="MYPIVOT" SelectionChanged="Pivot_SelectionChanged"> 
    <phone:PivotItem x:Name="one" Header="one"> 
     <Grid x:Name="content"> 
      <!-- Place content here --> 
     </Grid> 
    </phone:PivotItem> 
    <phone:PivotItem x:Name="two" Header="two" /> 
    <phone:PivotItem x:Name="three" Header="three" /> 
</phone:Pivot> 

и вот код позади:

PivotItem selected; 

    public MainPage() 
    { 
     InitializeComponent(); 
     selected = one; 
    } 

    private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     selected.Content = null; 

     switch(myPivot.SelectedIndex) 
     { 
      case 0: 
       one.Content = content; 
       selected = one; 
       break; 
      case 1: 
       two.Content = content; 
       selected = two; 
       break; 
      case 2: 
       three.Content = content; 
       selected = three; 
       break; 
     } 
    } 
Смежные вопросы