Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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,
            };
Ejemplo n.º 3
0
        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();
            }
        }