Я следую учебному пособию и определил (в файле XAML) объект Ellipse
, расположенный в центре экрана и содержащий узел TranslateTransform
в узле Ellipse.RenderTransform
, следующим образом:
<Ellipse
x:Name="theEllipse"
Fill="White"
Width="200"
Height="200">
<Ellipse.RenderTransform>
<TranslateTransform x:Name="theMover" />
</Ellipse.RenderTransform>
</Ellipse>
В коде позади я добавил обработчик событий ManipulationDelta
к Ellipse
следующим образом:
public MainPage()
{
// other stuff
theEllipse.ManipulationDelta
+= new EventHandler<ManipulationDeltaEventArgs>(theEllipse_ManipulationDelta);
}
void theEllipse_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
theMover.X = e.CumulativeManipulation.Translation.X;
theMover.Y = e.CumulativeManipulation.Translation.Y;
}
Таким образом я могу нажать на Ellipse
и перетащить его из начальной позиции. Однако я обнаружил, что когда я отпускаю Ellipse
и нажимаю на него во второй раз, Ellipse
прыгает и начинает перетаскивать из своей начальной позиции, а не из текущей позиции. Почему это? И как бы я определил мое перетаскивающее действие как кумулятивное в том смысле, что когда я перетаскиваю Эллипс во второй раз, он содержит откуда угодно?