protected override void OnPreviewMouseDown(MouseButtonEventArgs e) { base.OnPreviewMouseDown(e); Point pos = e.GetPosition(treeProjects); HitTestResult result = VisualTreeHelper.HitTest(treeProjects, pos); TreeViewItem item = null; if (result != null) { item = ViewHelper.FindVisualParent <TreeViewItem>(result.VisualHit); } if (e.RightButton == MouseButtonState.Pressed) { if (item != null) { item.IsSelected = true; } } if (e.ClickCount == 2) { if (item != null && item.DataContext is ViFileInfo) { ViFileInfo node = item.DataContext as ViFileInfo; node.DoubleClick(e); } return; } dragBoxFromMouseDown = new Rect(pos.X - dragSize.Width / 2, pos.Y - dragSize.Height / 2, dragSize.Width, dragSize.Height); }
private void DoPaste() { List <ViFileInfo> selectItems = this.SelectedItems; ViFileInfo target = selectItems.Count == 1 ? selectItems[0] : selectItems[0].GetParent() as ViFileInfo; if (target != null) { target.DoPaste(); } }
private void TextBox_LostFocus(object sender, RoutedEventArgs e) { TextBox tb = sender as TextBox; ViFileInfo target = tb.Tag as ViFileInfo; if (target == null) { return; } target.Remane(target.Name, tb.Text); target.IsEditMode = false; }
private void TextBox_KeyUp(object sender, KeyEventArgs e) { TextBox tb = sender as TextBox; ViFileInfo tag = tb.Tag as ViFileInfo; if (tag == null) { return; } if (e.Key == Key.Escape) { tag.IsEditMode = false; } else if (e.Key == Key.Enter) { tag.Remane(tag.Name, tb.Text); tag.IsEditMode = false; } }
protected override void OnDrop(DragEventArgs e) { base.OnDrop(e); e.Handled = true; //获取当前位置的TreeViewItem Point pos = e.GetPosition(this.treeProjects); HitTestResult result = VisualTreeHelper.HitTest(treeProjects, pos); if (result == null) { return; } TreeViewItem curItem = ViewHelper.FindVisualParent <TreeViewItem>(result.VisualHit); if (curItem == null) { return; } //获取目标对象。 TreeViewItem sourceItem = e.Data.GetData(typeof(TreeViewItem)) as TreeViewItem; if (sourceItem == null) { return; } //判断及进行执行相关的拖放操作。 ViFileInfo curFile = curItem.DataContext as ViFileInfo; ViFileInfo srcFile = sourceItem.DataContext as ViFileInfo; ViFolderInfo currFolder = curFile is ViFolderInfo ? curFile as ViFolderInfo : curFile.GetParent() as ViFolderInfo; if (currFolder == null) { return; } currFolder.ModeFileInfo(srcFile); }