/// <summary> /// Erstellt ein Creation-Feedback an dem angegebenen Punkt. /// Dabei vergrößert sich ein Rechteck solange, bis durch das loslassen des Punktes /// auch eine User Story erstellt werden kann. Zudem dreht sich das Rechteck bereits in /// die spätere Ausrichtung der User Story und zeigt auch dessen größe an. /// </summary> /// <param name="pt"></param> public void StartCreationFeedback(Point pt) { this.Invoke(() => { RemoveCreationFeedback(); _creationFeedback = new Rectangle(); lock (_creationFeedback) { _creationFeedback.RenderTransform = new RotateTransform( InitialAngleHelper.GetInitialAngle( this.ActualWidth, this.ActualHeight, pt), UserStoryControl.StaticDefaultSettings.Scale * (double)UserStoryControl.StdWidth / 2, UserStoryControl.StaticDefaultSettings.Scale * (double)UserStoryControl.StdHeight / 2); _creationFeedback.SetValue(Canvas.LeftProperty, pt.X); _creationFeedback.SetValue(Canvas.TopProperty, pt.Y); _creationFeedback.Width = 0; _creationFeedback.Height = 0; _creationFeedback.Stroke = new SolidColorBrush(Color.FromRgb(0, 0, 0)); _creationFeedback.StrokeThickness = 2; this.Children.Add(_creationFeedback); Animation.Animator.ResizeTo(_creationFeedback, UserStoryControl.StaticDefaultSettings.Scale * (double)UserStoryControl.StdWidth, UserStoryControl.StaticDefaultSettings.Scale * (double)UserStoryControl.StdHeight, pt.X, pt.Y); } }); }
/// <summary> /// Halte-Geste zum erstellen einer neuen User Story /// Das Creation Feedback ist so ausgelegt, /// dass das Rechteck nicht weiter wächst, wenn die User Story durch loslassen /// erstellt werden kann /// </summary> /// <param name="element"></param> /// <param name="points"></param> private void HoldGesture(UIElement element, TouchGroup points) { this.Invoke(() => { UserStory us = new UserStory(); Database.AddItem(us); us.Representations[0].MoveCenter(points[0].CurrentPoint.X, points[0].CurrentPoint.Y); //Automatisch den Winkel bestimmen us.Representations[0].RotateAngle = InitialAngleHelper.GetInitialAngle( this.ActualWidth, this.ActualHeight, points[0].CurrentPoint); OnItemCreated(us); }); }