Пример #1
0
        /// <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);
                }
            });
        }
Пример #2
0
        /// <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);
            });
        }