1
我需要用鼠标光标移动多个文本框。 我决定我这样做。 如果单击文本框(并按下“控制”按钮),则将文本框添加到所选项目的列表中。然后,当按钮仍然按下,当鼠标移动时,我执行移动控件的操作。但是,我的代码不能正常工作。文本框正在移动,但速度非常快。这里是我的代码移动多个控件
List<TextBox> items;
private void txtBox_PreviewMouseDown(object sender, RoutedEventArgs e)
{
isClicked = true;
startPoint = Mouse.GetPosition( (sender as TextBox).Parent);
items = CurrentSelection;
}
private void txtBox_PreviewMouseMove(object sender, RoutedEventArgs e)
{
Point mousePos = Mouse.GetPosition(parentCanvas);
if (isClicked)
{
foreach (TextBox item in items)
{
double left = Canvas.GetLeft(item);
double top = Canvas.GetTop(item);
Canvas.SetLeft(item, left + (startPoint.X - mousePos.X));
Canvas.SetTop(item, top + (startPoint.Y - mousePos.Y));
}
}
}
基本上我遍历所有选定的项目,并改变它们在画布上的位置。不过,我可能以一种错误的方式来计算一个新的位置。
非常感谢:)它的工作原理 – Berial 2010-08-12 19:19:56