【发布时间】:2019-02-14 13:17:52
【问题描述】:
我试图在用户点击后将新的孩子(圆圈)添加到我的画布中。我想在拖动圆圈时改变它们的位置。 我想用 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>
【问题讨论】:
标签: c# wpf canvas mvvm binding