private void Window_MouseMove(object sender, MouseEventArgs e) { if (Mouse_Down) { Point P = e.GetPosition(this); Draw_Point(P); Temp.Add_Point(P); } }
private void Window_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (!Mouse_Down) { return; } Mouse_Down = false; //---------------------------------Add the last point to the canvas and screen--------------------------------- Point P = e.GetPosition(this); Draw_Point(P); Temp.Add_Point(P); //---------------------------------Do the finished work-------------------------------------------------------- Temp.Finish_Collecting(); if (!Temp.Finished_Collecting) { return; } //--------------------------check if the current gesture should be unioned with the last gesture----------------------- if (Screen.Count != 0) { Mouse_Data REF = Screen[Screen.Count - 1]; if ((Screen[Screen.Count - 1].Intersect(Temp) || (Screen[Screen.Count - 1].Boundary.Contains(Temp.Center)) && Recognizer.Recognize(ref REF) != "square root")) { Mouse_Data T = Screen[Screen.Count - 1]; T.Union(Temp); Screen[Screen.Count - 1] = T; } else { RecLast(); if (Screen.Last().Label == "horizontal line") { Mouse_Data D = new Mouse_Data(Screen.Last()); D.Union(Temp); if (Recognizer.Recognize(ref Temp) == "horizontal line" && Recognizer.Recognize(ref D, false) == "equals") { Screen[Screen.Count - 1] = D; double R = Calculate_Value(); Debug.Print(R.ToString()); #region Output_Answer Label AnswerBox = new Label(); AnswerBox.Content = R.ToString(); double L, T; AnswerBox.Margin = new Thickness(L = Temp.Boundary.X + Temp.Boundary.Width + 10, T = ((Temp.Boundary.Y + Temp.Boundary.Height + D.Boundary.Y + D.Boundary.Height) / 2 - 50), 0, MainCanvas.Height - T - 20); AnswerBox.FontSize = 50; MainCanvas.Children.Add(AnswerBox); #endregion } else { Screen.Add(Temp); } } else { Screen.Add(Temp); } } } else { Screen.Add(Temp); } }