private static void OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var view = (EmbeddedShellView)d;

            if ((bool)e.NewValue == false)
            {
                return;
            }

            view.WhenLoaded(x => ((EmbeddedShellView)x).Start(VisualTreeHelper2.GetAncestor <SnoopUI>((EmbeddedShellView)x)));
        }
        private void OnRootLoaded()
        {
            // The following assumptions are made:
            // 1. The visual structure of each TreeViewItem is the same regardless of its location.
            // 2. The control template of a TreeViewItem contains ItemsPresenter.
            var root = this.pendingRoot;

            this.pendingRoot = null;
            root.Loaded     -= this.OnRootLoaded;

            ItemsPresenter itemsPresenter = null;

            VisualTreeHelper2.EnumerateTree(root, null,
                                            (visual, misc) =>
            {
                itemsPresenter = visual as ItemsPresenter;
                if (itemsPresenter != null && itemsPresenter.TemplatedParent == root)
                {
                    return(HitTestResultBehavior.Stop);
                }
                else
                {
                    itemsPresenter = null;
                    return(HitTestResultBehavior.Continue);
                }
            },
                                            null);

            if (itemsPresenter != null)
            {
                var levelLayoutDepth = 2;
                DependencyObject tmp = itemsPresenter;
                while (tmp != root)
                {
                    ++levelLayoutDepth;
                    tmp = VisualTreeHelper.GetParent(tmp);
                }

                var rootLayoutDepth = 0;
                while (tmp != null)
                {
                    ++rootLayoutDepth;
                    tmp = VisualTreeHelper.GetParent(tmp);
                }

                this.maxDepth = (240 - rootLayoutDepth) / levelLayoutDepth;
                this.rootItem = new WeakReference((TreeItem)root.DataContext);
            }
        }
Exemplo n.º 3
0
        private static void OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var view = (EmbeddedShellView)d;

            if ((bool)e.NewValue == false)
            {
                return;
            }

            view.WhenLoaded(x =>
            {
                var embeddedShellView = (EmbeddedShellView)x;
                var targetSnoopUi     = VisualTreeHelper2.GetAncestor <SnoopUI>(embeddedShellView);

                if (targetSnoopUi is not null)
                {
                    embeddedShellView.Start(targetSnoopUi);
                }
            });
        }
Exemplo n.º 4
0
        private void CaptionBar_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            var window = VisualTreeHelper2.FindVisualParents <Window>(this).First();

            window.DragMove();
        }