目前,要获取鼠标坐标,我使用以下方法:
XAML
<interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="PreviewDragOver">
<i:CallMethodAction MethodName="UIElement_OnPreviewDragOver" TargetObject="{Binding}" />
</interactivity:EventTrigger>
</interactivity:Interaction.Triggers>
虚拟机
public void UIElement_OnPreviewDragOver(object sender, DragEventArgs e)
{
Point = e.GetPosition((TreeView)sender);
}
我对我在内部使用控件的事实不满意,VM
我想将此处理程序更改为ICommand
. 但是如何获得鼠标坐标呢?
由于鼠标坐标不太容易通过 XAML 连接,因此最简单的方法是将其包装在代码隐藏中。让您在 VM 中的命令位于
DragCommand
.在 XAML 中:
在代码隐藏中,您需要执行以下操作:
我们放置依赖属性以免强制
DataContext
转换为VM
.在构造函数中,设置绑定(在 XAML 中不起作用):
并定义一个处理程序: