получить контроль над мышью - PullRequest
1 голос
/ 22 февраля 2010

У меня есть элемент управления Silverlight, в котором я динамически создаю фигуры при нажатии кнопки Эти формы можно перетаскивать по всей форме. Теперь я хочу получить верхнее и левое положение элемента управления при перетаскивании (mousemove). Пожалуйста, помогите

1 Ответ

0 голосов
/ 22 февраля 2010

Рассматривая историю ваших вопросов, я могу придумать два подхода. Я подозреваю, что форма просто помещается на Canvas, а MouseMove, о котором вы говорите, относится к обработчику событий, который вы прикрепили к Canvas. На этом основании тогда.

void Canvas_MouseMove(object sender, MouseEventArgs e) 
{ 

    Type currentType = e.OriginalSource.GetType();

    // Make decisions based on value of currentType here 

    DependencyObject source = (DependencyObject)e.OriginalSource;
    Point p = new Point(Canvas.GetLeft(source), Canvas.GetTop(source));

} 

Более общим решением является использование подхода TransformToVisual. Что-то вроде: -

var transform = ((UIElement)e.OriginalSource).TransformToVisual(MyCanvas);
Point p = transform.Transform(Point(0,0));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...