2015-07-18 4 views
0

Я пытаюсь нарисовать эллипс на холсте в соответствии с движением мыши. Я использую событие перемещения мыши и получаю точку X и Y точки мыши и обнаруживаю, что elippse находится в новом месте внутри холста. Все это прекрасно работает, я получаю очень плавное движение эллипса.WPF Mouse Smooth movement issue

Однако, если я изменю значение позиции, которую я получил (см. Код ниже). я получаю очень плохую проблему при движении по мыши. Эллипс скачет размеру эллипса. это значение heppens, только если значение имеет размер эллипса; Я предполагаю, что это связано с тем, что старый эллипс на холсте (вид: эллипс пропустить его сам). Вот мой код:

private void MainArea_MouseMove(object sender, MouseEventArgs e) 
    { 

     Point position = e.GetPosition(canvas); 

     //position.X -= 15 ; // this line couse the problem 

     Canvas.SetLeft(PlayerEllipse, position.X); 
     Canvas.SetTop(PlayerEllipse, position.Y); 
    } 

Ищет решение

ответ

0

решенного - я обнаружил, что мне нужно также построить еще один обработчик MouseMove. для самого эллипса. becaouse, когда моя мышь находится на эллипсе, событие, связанное с эллипсом, а не с контейнером MainArea. см. ниже

myEllipse.MouseMove += new MouseEventHandler(myEllipse_MouseMove); 



private void myEllipse_MouseMove(object sender, MouseEventArgs e) 
    { 
     MainArea_MouseMove(sender, e); 
    }