这是我的代码隐藏:
private void Button_Click(object sender, RoutedEventArgs e)
{
foreach (FrameworkElement fe in canvas.Children)
{
double top = (double)fe.GetValue(Canvas.TopProperty);
double left = (double)fe.GetValue(Canvas.LeftProperty);
}
}
A'帆布'是XAML中我的Canvas控件的名称。当前代码使我能够在画布中获取图像的位置。这是在代码隐藏中实现的。问题是,我们如何以MVVM方式获取图像的位置(使用命令启动该过程)?
答案 0 :(得分:0)
我们如何以MVVM方式获取图像的位置(使用命令启动该过程)?
不需要命令,只需将每个画布的每个所需属性绑定到VM即可。然后在需要时提取获取图像所需的目标画布属性。
答案 1 :(得分:0)
一个好的解决方案是使用XAML行为:
<Canvas x:Name="Canvas">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding YourCommand}"
CommandParameter="{Binding ElementName=canvas}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Canvas>
通过这种方式,您可以访问Canvas
中的ViewModel
,并且可以执行命令中的代码。