private void TreeViewItem_PreviewMouseDown(object sender, MouseButtonEventArgs e) { FrameworkElement sourceElement = (FrameworkElement)sender; if (sender is TreeViewItem) { TreeViewItem treeviewitem = sender as TreeViewItem; if (!(e.OriginalSource is TextBlock)) { return; } if (((FrameworkElement)e.OriginalSource).GetParentByName <TreeViewItem>(null) != treeviewitem) { return; } } else { //list里面,因为devicePoint在MouseDown会实现drop,所以MouseDoubleClick无法触发,只能这里触发了 if (e.ClickCount == 2) { e.Handled = true; TreeViewItem_MouseDoubleClick(sender, e); return; } } Models.SolutionNode data = sourceElement.DataContext as Models.SolutionNode; data.MouseDown(sender, e); }
/// <summary> /// 树形节点双击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e) { e.Handled = true; FrameworkElement sourceElement = (FrameworkElement)sender; if (sender is TreeViewItem) { TreeViewItem treeviewitem = sender as TreeViewItem; if (((FrameworkElement)e.OriginalSource).GetParentByName <TreeViewItem>(null) != treeviewitem) { return; } sourceElement = treeviewitem; } Models.SolutionNode data = sourceElement.DataContext as Models.SolutionNode; if (data.DoublicClickHandler != null) { data.DoublicClickHandler(sender, e); } }
private void TreeViewItem_PreviewMouseUp(object sender, MouseButtonEventArgs e) { FrameworkElement sourceElement = (FrameworkElement)sender; if (sender is TreeViewItem) { TreeViewItem treeviewitem = sender as TreeViewItem; if (!(e.OriginalSource is TextBlock)) { return; } if (((FrameworkElement)e.OriginalSource).GetParentByName <TreeViewItem>(null) != treeviewitem) { return; } } Models.SolutionNode data = sourceElement.DataContext as Models.SolutionNode; data.MouseUp(sender, e); }