none
CaptureMouse RRS feed

  • Вопрос

  • Здравствуйте. Вопрос очень простой. Почему не срабатывает событие? Вот код:

      void Next_MouseEnter(object sender, MouseEventArgs e)
            {
                if (e.Source == Next && !isRectCaptured)
                {
                    isRectCaptured = true;
                    mouse = e.GetPosition(TwoRoot);
                    Next.CaptureMouse();
                    e.Handled = true;
                }

               /* if (isRectCaptured)
                {
                    System.Windows.Point cp = e.GetPosition(TwoRoot);
                    Vector cur = cp - prevMouse;
                    translation.X += cur.X;
                    translation.Y += cur.Y;
                    prevMouse = cp;
                }*/
            }

            void Next_MouseMove(object sender, MouseEventArgs e)
            {
                if (isRectCaptured)
                {
                    Point testBounds = e.GetPosition(TwoRoot);
                    if (testBounds.X > (TwoRoot.ActualWidth -1) && testBounds.Y > (TwoRoot.ActualHeight -1) && testBounds.X < mouse.X && testBounds.Y < mouse.Y)
                    {
                        Next.ReleaseMouseCapture();
                        //Canvas.SetLeft(Next, mouse.X);
                      //  Canvas.SetTop(Next, mouse.Y);

                       // Next.SetValue(Canvas.LeftProperty, mouse.X);
                        //Next.SetValue(Canvas.TopProperty, mouse.Y);
                        isRectCaptured = false;
                    }
                    else
                    {
                        mouse = e.GetPosition(TwoRoot);
                        //isRectCaptured = true;
                    }
                }

    Объект Next не цепляется за курсор мыши. Только приложение немного подвисает когда навожу курсор на этот объект. Ограничения области убирал - не помогает.

    6 августа 2011 г. 19:06

Ответы

  • Спасибо за участие. ошибку нашёл.

    else
                    {
                        mouse = e.GetPosition(TwoRoot);
                        Canvas.SetLeft(next, mouse.X);
                             Canvas.SetTop(next, mouse.Y);

                    }

    • Помечено в качестве ответа Serdceder 7 августа 2011 г. 18:57
    7 августа 2011 г. 18:57