<Line Name="Hours" PointerEntered="ShowHand" PointerExited="ShowArrow" HorizontalAlignment="Center" VerticalAlignment="Center" X1="0" Y1="0" X2="0" Y2="-70" Stroke="Wheat" Margin="1,0,0,0" StrokeThickness="3" Grid.RowSpan="8" ManipulationDelta=" HourRight_ManipulationDelta" ManipulationMode="TranslateInertia,TranslateX,TranslateY"> <Line.RenderTransform> <RotateTransform x:Name="HoursTransform" CenterX="0" CenterY="0" Angle="{Binding HourHandAngle}" /> </Line.RenderTransform> </Line>
private void HourRight_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) { var x = HoursTransform.CenterX - e.Position.X; var y = HoursTransform.CenterY - e.Position.Y; var angle = Math.Atan(y / x); var deltaAngle = Math.Atan((e.Delta.Translation.Y - y) / (x - e.Delta.Translation.X)); this.HoursTransform.Angle += angle - deltaAngle; }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)