コード例 #1
0
ファイル: MultiSelectTreeView.cs プロジェクト: dnGrep/dnGrep
        private static void SelectItems(TreeViewItem treeViewItem, MultiSelectTreeView treeView)
        {
            if (treeViewItem != null && treeView != null)
            {
                bool isFunctionKeyDown = Keyboard.IsKeyDown(Key.F1) || Keyboard.IsKeyDown(Key.F2) || Keyboard.IsKeyDown(Key.F3) ||
                                         Keyboard.IsKeyDown(Key.F4) || Keyboard.IsKeyDown(Key.F5) || Keyboard.IsKeyDown(Key.F6) ||
                                         Keyboard.IsKeyDown(Key.F7) || Keyboard.IsKeyDown(Key.F7) || Keyboard.IsKeyDown(Key.F9) ||
                                         Keyboard.IsKeyDown(Key.F10) || Keyboard.IsKeyDown(Key.F11) || Keyboard.IsKeyDown(Key.F12);

                if (treeView.MultiSelectRootLevelOnly)
                {
                    bool isRoot = ItemsControl.ItemsControlFromItemContainer(treeViewItem) == treeView;
                    if (isRoot)
                    {
                        treeView.DeselectAllChildItems();

                        if (Keyboard.Modifiers.HasFlag(ModifierKeys.Control | ModifierKeys.Shift) && !isFunctionKeyDown)
                        {
                            SelectMultipleItemsContinuously(treeView, treeViewItem, true);
                        }
                        else if (Keyboard.Modifiers.HasFlag(ModifierKeys.Control) && !isFunctionKeyDown)
                        {
                            SelectMultipleItemsRandomly(treeView, treeViewItem);
                        }
                        else if (Keyboard.Modifiers.HasFlag(ModifierKeys.Shift) && !isFunctionKeyDown)
                        {
                            SelectMultipleItemsContinuously(treeView, treeViewItem);
                        }
                        else
                        {
                            SelectSingleItem(treeView, treeViewItem);
                        }
                    }
                    else
                    {
                        SelectSingleItem(treeView, treeViewItem);
                    }
                }
                else
                {
                    if (Keyboard.Modifiers.HasFlag(ModifierKeys.Control | ModifierKeys.Shift) && !isFunctionKeyDown)
                    {
                        SelectMultipleItemsContinuously(treeView, treeViewItem, true);
                    }
                    else if (Keyboard.Modifiers.HasFlag(ModifierKeys.Control) && !isFunctionKeyDown)
                    {
                        SelectMultipleItemsRandomly(treeView, treeViewItem);
                    }
                    else if (Keyboard.Modifiers.HasFlag(ModifierKeys.Shift) && !isFunctionKeyDown)
                    {
                        SelectMultipleItemsContinuously(treeView, treeViewItem);
                    }
                    else
                    {
                        SelectSingleItem(treeView, treeViewItem);
                    }
                }
            }
        }
コード例 #2
0
        private static void SelectItems(TreeViewItem treeViewItem, MultiSelectTreeView treeView)
        {
            if (treeViewItem != null && treeView != null)
            {
                if (treeView.MultiSelectRootLevelOnly)
                {
                    bool isRoot = ItemsControl.ItemsControlFromItemContainer(treeViewItem) == treeView;
                    if (isRoot)
                    {
                        treeView.DeselectAllChildItems();

                        if ((Keyboard.Modifiers & (ModifierKeys.Control | ModifierKeys.Shift)) == (ModifierKeys.Control | ModifierKeys.Shift))
                        {
                            SelectMultipleItemsContinuously(treeView, treeViewItem, true);
                        }
                        else if (Keyboard.Modifiers == ModifierKeys.Control)
                        {
                            SelectMultipleItemsRandomly(treeView, treeViewItem);
                        }
                        else if (Keyboard.Modifiers == ModifierKeys.Shift)
                        {
                            SelectMultipleItemsContinuously(treeView, treeViewItem);
                        }
                        else
                        {
                            SelectSingleItem(treeView, treeViewItem);
                        }
                    }
                    else
                    {
                        SelectSingleItem(treeView, treeViewItem);
                    }
                }
                else
                {
                    if ((Keyboard.Modifiers & (ModifierKeys.Control | ModifierKeys.Shift)) == (ModifierKeys.Control | ModifierKeys.Shift))
                    {
                        SelectMultipleItemsContinuously(treeView, treeViewItem, true);
                    }
                    else if (Keyboard.Modifiers == ModifierKeys.Control)
                    {
                        SelectMultipleItemsRandomly(treeView, treeViewItem);
                    }
                    else if (Keyboard.Modifiers == ModifierKeys.Shift)
                    {
                        SelectMultipleItemsContinuously(treeView, treeViewItem);
                    }
                    else
                    {
                        SelectSingleItem(treeView, treeViewItem);
                    }
                }
            }
        }