コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: macupryk/EyeShot
        private void Selection(MouseClickType mouseClickType)
        {
            if (_treeModify)
            {
                return;
            }

            _treeModify = true;

            if (mouseClickType == MouseClickType.RightClick)
            {
                // Sets the parent of the current BlockReference as current.
                model1.Entities.SetParentAsCurrent();
            }
            else
            {
                // Deselects the previously selected item
                if (lastSelectedItem != null)
                {
                    lastSelectedItem.Select(model1, false);
                    lastSelectedItem = null;
                }

                var item = model1.GetItemUnderMouseCursor(_mouseLocation);

                if (item != null)
                {
                    lastSelectedItem = item;

                    TreeViewUtility.CleanCurrent(model1, false);

                    // Marks as selected the entity under the mouse cursor.
                    item.Select(model1, true);
                }
                else
                {
                    // Back to the root level
                    if (mouseClickType == MouseClickType.LeftDoubleClick)
                    {
                        TreeViewUtility.CleanCurrent(model1);
                    }
                }
            }

            // An entity in the viewport was selected, so we highlight the corresponding element in the treeview as well
            TreeViewUtility.SynchScreenSelection(treeView1, new Stack <BlockReference>(model1.Entities.Parents), lastSelectedItem);

            model1.Invalidate();

            _treeModify = false;
        }
コード例 #2
0
ファイル: MainWindow.xaml.cs プロジェクト: macupryk/EyeShot
        private void TreeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            if (_treeModify)
            {
                return;
            }

            _treeModify = true;

            //An element of the treeview was selected, so we select the corresponding viewport element as well

            if (lastSelectedItem != null)
            {
                lastSelectedItem.Select(model1, false);
            }

            TreeViewUtility.CleanCurrent(model1);
            lastSelectedItem = TreeViewUtility.SynchTreeSelection(treeView1, model1);

            model1.Invalidate();

            _treeModify = false;
        }