如何检查wpf中UserControl范围内的拖动?

时间:2016-05-13 08:43:26

标签: c# .net wpf xaml

我在我的用户控件(WorkflowContainer)中创建了一个名为IsDragMouseOver的新布尔值。

$.getJSON('{{action("Controller@method")}}', {user_id: vm.user.id})

当我在UserControl的范围内拖动时,我想在用户控件的子元素上显示蓝色符号加: enter image description here

只有我拖动用户控件才能正常工作但是当我拖动子元素public static DependencyProperty IsDragMouseOverProperty = DependencyProperty.Register("IsDragMouseOver", typeof(bool), typeof(WpfWorkflowBaseDesigner), null); public bool IsDragMouseOver { get { return (bool)GetValue(IsDragMouseOverProperty); } set { SetValue(IsDragMouseOverProperty, value); } } protected override void OnDragEnter(DragEventArgs e) { base.OnDragEnter(e); IsDragMouseOver = true; } protected override void OnDragOver(DragEventArgs e) { base.OnDragOver(e); IsDragMouseOver = true; } protected override void OnDrop(DragEventArgs e) { base.OnDrop(e); IsDragMouseOver = false; } protected override void OnDragLeave(DragEventArgs e) { base.OnDragLeave(e); IsDragMouseOver = false; } 时返回IsDragMouseOver并且蓝色符号加上不显示: enter image description here

子元素的代码xaml:

false

当我在UserControl的范围内拖动时如何显示符号加上只有在UserControl的外部范围内拖动时才禁用sign plus?

1 个答案:

答案 0 :(得分:0)

处理子元素中的DragEnter,代码示例:

 protected override void OnDragEnter(DragEventArgs e)
        {
            base.OnDragEnter(e);
            WorkflowContainer workflowContainer = DesignerHelper.FindAncestor<WorkflowContainer>(e.OriginalSource as DependencyObject);
            if (workflowContainer != null)
            {
                workflowContainer.IsDragMouseOver = true;
            }
        }