private static bool _isScrollBarVisible(DependencyObject view) { ScrollViewer[] sv = WpfUtilities.FindChildren <ScrollViewer>(view); if (sv.Length > 0) { return(sv[0].ComputedVerticalScrollBarVisibility == Visibility.Visible); } return(false); }
private void OnTreeViewItemPreviewMouseLeftButton(object sender, MouseButtonEventArgs e) { var categoryButton = sender as TreeViewItem; if (!(categoryButton.DataContext is RootNodeCategoryViewModel)) { return; } var wrapPanels = new List <LibraryWrapPanel>(); WpfUtilities.FindChildren <LibraryWrapPanel>(categoryButton, string.Empty, wrapPanels); if (wrapPanels.Count == 0) { return; } var selectedElement = e.OriginalSource as FrameworkElement; var selectedClass = selectedElement.DataContext as NodeCategoryViewModel; // Continue work with real class: not null, not ClassInformationViewModel. if (selectedClass == null || selectedClass is ClassInformationViewModel || selectedClass.SubCategories.Count > 0) { return; } // Go through all available for current top category LibraryWrapPanel. // Select class if wrapPanel contains selectedClass. // Unselect class in other case. foreach (var wrapPanel in wrapPanels) { if (wrapPanel.MakeOrClearSelection(selectedClass)) { e.Handled = true; selectedElement.BringIntoView(); } } }