【发布时间】:2015-01-13 14:10:43
【问题描述】:
我有一种方法可以在鼠标单击时在画布上绘制节点(椭圆),然后当单击其中一个节点时,一种方法会根据该节点的 x,y 进行一些计算并放置任何文件的图像-我在代码中输入的路径。我正在尝试这样做,所以当我单击另一个节点时,图像的位置会根据新节点的 x、y 更新。我尝试做这里列出的Draw rectangle and update it on every mouse click,但它没有删除最后一张图片。
这是我点击按钮的方法开始这个 -
private void FindROVButton_Click(object sender, RoutedEventArgs e)
{
if (SelectedNode != null) // SelectedNode is the currently clicked node
{
if (System.Windows.MessageBox.Show("Calculate ROV location from \"" + SelectedNode.Name + "\"?", "Calculate ROV Location", MessageBoxButton.YesNoCancel, MessageBoxImage.Warning) == MessageBoxResult.Yes)
{
Point rovPosition = new Point();
rovPosition = calculateROV_position(SelectedNode.X, SelectedNode.Y, SelectedNode.Range, SelectedNode.Bearing);
Image rov = new Image();
rov.Source = new BitmapImage(new Uri("C:\\Pic\\Example.png"));
rov.Width = 30;
rov.Height = 30;
Canvas.SetLeft(rov, (rovPosition.X - (rov.Width / 2.0)));
Canvas.SetTop(rov, (rovPosition.Y - (rov.Height / 2.0)));
canvas1.Children.Add(rov);
}
}
}
在将新 rov 放置在画布上之前,在任何地方调用 canvas1.Children.Remove(rov) 都不起作用。它只是总是在画布上添加一个新的。我猜这与它完全基于所选节点的事实有关。
【问题讨论】:
标签: c# wpf image button canvas