private void CycleBlades() { ActiveBlades = new ObservableCollection <BladeItem>(); foreach (var item in Items) { BladeItem blade = GetBladeItem(item); if (blade != null) { if (blade.IsOpen) { ActiveBlades.Add(blade); } } } // For now we skip this feature when blade mode is set to fullscreen if (AutoCollapseCountThreshold > 0 && BladeMode != BladeMode.Fullscreen && ActiveBlades.Any()) { var openBlades = ActiveBlades.Where(item => item.TitleBarVisibility == Visibility.Visible).ToList(); if (openBlades.Count > AutoCollapseCountThreshold) { for (int i = 0; i < openBlades.Count - 1; i++) { openBlades[i].IsExpanded = false; } } } }
private static void IsOpenChangedCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs) { BladeItem bladeItem = (BladeItem)dependencyObject; bladeItem.Visibility = bladeItem.IsOpen ? Visibility.Visible : Visibility.Collapsed; bladeItem.VisibilityChanged?.Invoke(bladeItem, bladeItem.Visibility); }
private static void OnTitleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { BladeItem bladeItem = (BladeItem)d; #pragma warning disable CS0618 // Type or member is obsolete bladeItem.Header = bladeItem.Title; #pragma warning restore CS0618 // Type or member is obsolete }
private BladeItem GetBladeItem(object item) { BladeItem blade = item as BladeItem; if (blade == null) { blade = (BladeItem)ContainerFromItem(item); } return(blade); }