Ejemplo n.º 1
0
        // Updates selected content
        private void UpdateSelectedContent()
        {
            if (base.SelectedIndex < 0)
            {
                this.SelectedContent = null;
            }
            else
            {
                BackstageTabItem selectedTabItem = this.GetSelectedTabItem();
                if (selectedTabItem != null)
                {
                    this.SelectedContent = selectedTabItem.Content;
                    if (((selectedTabItem.ContentTemplate != null) || (selectedTabItem.ContentTemplateSelector != null)) || (selectedTabItem.ContentStringFormat != null))
                    {
                        this.SelectedContentTemplate         = selectedTabItem.ContentTemplate;
                        this.SelectedContentTemplateSelector = selectedTabItem.ContentTemplateSelector;
                        this.SelectedContentStringFormat     = selectedTabItem.ContentStringFormat;
                    }
                    else
                    {
                        this.SelectedContentTemplate         = this.ContentTemplate;
                        this.SelectedContentTemplateSelector = this.ContentTemplateSelector;
                        this.SelectedContentStringFormat     = this.ContentStringFormat;
                    }

                    UpdateLayout();
                }
            }
        }
Ejemplo n.º 2
0
 // Finds next tab item
 private BackstageTabItem FindNextTabItem(int startIndex, int direction)
 {
     if (direction != 0)
     {
         int index = startIndex;
         for (int i = 0; i < base.Items.Count; i++)
         {
             index += direction;
             if (index >= base.Items.Count)
             {
                 index = 0;
             }
             else if (index < 0)
             {
                 index = base.Items.Count - 1;
             }
             BackstageTabItem item2 = base.ItemContainerGenerator.ContainerFromIndex(index) as BackstageTabItem;
             if (((item2 != null) && item2.IsEnabled) && (item2.Visibility == Visibility.Visible))
             {
                 return(item2);
             }
         }
     }
     return(null);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Updates the current selection when an item in the System.Windows.Controls.Primitives.Selector has changed
 /// </summary>
 /// <param name="e">The event data.</param>
 protected override void OnItemsChanged(NotifyCollectionChangedEventArgs e)
 {
     base.OnItemsChanged(e);
     if ((e.Action == NotifyCollectionChangedAction.Remove) && (base.SelectedIndex == -1))
     {
         int startIndex = e.OldStartingIndex + 1;
         if (startIndex > base.Items.Count)
         {
             startIndex = 0;
         }
         BackstageTabItem item = FindNextTabItem(startIndex, -1);
         if (item != null)
         {
             item.IsSelected = true;
         }
     }
 }
Ejemplo n.º 4
0
        // Gets selected ribbon tab item
        BackstageTabItem GetSelectedTabItem()
        {
            object selectedItem = base.SelectedItem;

            if (selectedItem == null)
            {
                return(null);
            }
            BackstageTabItem item = selectedItem as BackstageTabItem;

            if (item == null)
            {
                item = FindNextTabItem(base.SelectedIndex, 1);
                base.SelectedItem = item;
            }
            return(item);
        }
Ejemplo n.º 5
0
        // Handles IsSelected changed
        private static void OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            BackstageTabItem container = (BackstageTabItem)d;
            bool             newValue  = (bool)e.NewValue;

            if (newValue)
            {
                BackstageTabControl backstage = container.Parent as BackstageTabControl;
                if ((backstage != null) && (backstage.SelectedItem != container))
                {
                    if (backstage.SelectedItem is BackstageTabItem)
                    {
                        (backstage.SelectedItem as BackstageTabItem).IsSelected = false;
                    }
                    backstage.SelectedItem = container;
                }
                container.OnSelected(new RoutedEventArgs(Selector.SelectedEvent, container));
            }
            else
            {
                container.OnUnselected(new RoutedEventArgs(Selector.UnselectedEvent, container));
            }
        }