コード例 #1
0
        private static bool _isScrollBarVisible(DependencyObject view)
        {
            ScrollViewer[] sv = WpfUtilities.FindChildren <ScrollViewer>(view);

            if (sv.Length > 0)
            {
                return(sv[0].ComputedVerticalScrollBarVisibility == Visibility.Visible);
            }

            return(false);
        }
コード例 #2
0
ファイル: LibraryView.xaml.cs プロジェクト: kiki-zhang/Dynamo
        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();
                }
            }
        }