我试图在用户单击画布后将其添加到我的画布中。我想在拖动圆的同时更改圆的位置。 我想用MVVM来做,但是不知道如何在ViewModel中捕获这些事件。 我需要一个MouseLeftButtonUp / Down
我已经尝试了System.Windows.Interactivity,但是它没有帮助。
我唯一的想法是添加不可见按钮并轻松绑定Command="{Binding Method}"
,但仍然无法解决我的问题,当然这不是最佳选择
这在我的XAML代码中(部分)
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
<Canvas x:Name="DrawableCanvas" HorizontalAlignment="Left" Height="{Binding ElementName=GridContainer, Path=ActualHeight}" VerticalAlignment="Top" Width="{Binding ElementName=GridContainer, Path=ActualWidth}" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<i:InvokeCommandAction Command="{Binding CanvasActionCommand}" x:Name="interactifityFix2">
</i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</Canvas>
答案 0 :(得分:0)
在您的XAML中添加此命名空间:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
然后您可以添加一个交互触发器,将事件与viemodel中的icommand合并,如下所示:
<Ellipse>
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewMouseDown">
<i:InvokeCommandAction Command="{Binding MouseDownCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Ellipse>