private void SynchronizeItems() { if (_isUWPTemplate) { _staticHeader.Visibility = Items.Count != 0 ? Visibility.Visible : Visibility.Collapsed; UnregisterHeaderEvents(); _staticHeader.Children.Clear(); foreach (var item in Items) { var headerItem = new PivotHeaderItem() { ContentTemplate = HeaderTemplate, IsHitTestVisible = true }; if (item is PivotItem pivotItem) { headerItem.Content = pivotItem.Header; } else { headerItem.Content = item; } headerItem.SetBinding( ContentControl.ContentTemplateProperty, new Binding { Path = "HeaderTemplate", RelativeSource = RelativeSource.TemplatedParent } ); _staticHeader.Children.Add(headerItem); } if (SelectedIndex == -1 && Items.Count != 0) { SelectedIndex = 0; } else { SynchronizeSelectedItem(); } RegisterHeaderEvents(); } else { if (TemplatedRoot is NativePivotPresenter presenter) { presenter.Items.Clear(); presenter.Items.AddRange(Items); } } }
private void UpdateVisualStates(PivotHeaderItem headerItem) { if (!_isUWPTemplate) { return; } if (!headerItem.IsEnabled) { VisualStateManager.GoToState(headerItem, PivotHeaderItemSelectionStates.Disabled, true); return; } var isSelected = SelectedIndex == _staticHeader.Children.IndexOf(headerItem); var state = (isSelected, headerItem.IsPointerOver, headerItem.IsPointerPressed) switch { (true, true, _) => PivotHeaderItemSelectionStates.SelectedPointerOver, (true, _, true) => PivotHeaderItemSelectionStates.SelectedPressed, (true, _, _) => PivotHeaderItemSelectionStates.Selected, (false, true, _) => PivotHeaderItemSelectionStates.UnselectedPointerOver, (false, _, true) => PivotHeaderItemSelectionStates.UnselectedPressed, (false, _, _) => PivotHeaderItemSelectionStates.Unselected, };
private static async void ClosePiovt(FrameworkElement sources) { try { PivotHeaderItem item = sources.GetParentControl <PivotHeaderItem>(); PivotHeaderPanel panel = sources.GetParentControl <PivotHeaderPanel>(); for (int i = 0; i < panel.Children.Count; i++) { var child = panel.Children[i]; if (child == item) { PivotViewModel pivot = sources.GetParentControl <Pivot>().DataContext as PivotViewModel; pivot.RemoveAt(i); return; } } } catch (Exception ex) { MessageDialog messageDialog = new MessageDialog(ex.Message); await messageDialog.ShowAsync(); } }