2013-10-11 5 views
0

У меня есть эта функция:Повернуть сетку вокруг положения курсора?

private void RightTap_Rotate(object sender, RightTappedRoutedEventArgs e) 
    { 
     var obj = (CompositeTransform)N.RenderTransform; 
     obj.Rotation += 90; 

    } 

Таким образом, после щелчка правой кнопкой мыши на сетке (N), это повернуть на 90 °, но не вокруг позиции курсора (около левого угла, да).

Что мне нужно для поворота вокруг курсора?

ответ

1

Установите центральную точку для преобразования:

private void RightTap_Rotate(object sender, RightTappedRoutedEventArgs e) 
{ 
    var obj = (CompositeTransform)N.RenderTransform; 
    Point cursorPos = Mouse.GetPosition(yourControl); 
    obj.CenterX = cursorPos.X; 
    obj.CenterY = cursorPos.Y; 
    obj.Rotation += 90; 
} 
+0

Спасибо, но что я должен используя для «мыши»? Я попробовал «Control.Mouse» и «System.Windows.Inout», но ничего не произошло. VS 2013, Windows 8.1 –

+1

Используйте ['e.GetPosition'] (http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.input.righttappedroutedeventargs.getposition), чтобы получить Положение. – Clemens

Смежные вопросы