private static void Update() { if (_gestureItems == null) { _gestureItems = new ObservableCollection <GestureItem>(); } else { _gestureItems.Clear(); } // Get all available gestures from gesture manager var apps = ApplicationManager.Instance.Applications.Where(app => !(app is IgnoredApp)).ToList(); var color = (Color)Application.Current.Resources["HighlightColor"]; foreach (var g in GestureManager.Instance.Gestures) { var gesture = (Gesture)g; string result = string.Empty; foreach (IApplication application in apps) { if (application.Actions.Any(a => a.GestureName == gesture.Name)) { result += $" {application.Name},"; } } result = result.TrimEnd(','); GestureItem newItem = new GestureItem() { GestureImage = GestureImage.CreateImage(gesture.PointPatterns, new Size(60, 60), color), Features = GestureManager.Instance.GetNewGestureId(gesture.PointPatterns), PatternCount = gesture?.PointPatterns.Max(p => p.Points.Count) ?? 0, Applications = result, Gesture = gesture }; GestureItems.Add(newItem); } GestureMap = GestureItems.ToDictionary(gi => gi.Gesture.Name); GlobalPropertyChanged?.Invoke(typeof(GestureItemProvider), nameof(InstanceGestureMap)); }
private void Window_Loaded(object sender, RoutedEventArgs e) { var color = (Color)Application.Current.Resources["HighlightColor"]; this.imgGestureThumbnail.Source = GestureImage.CreateImage(_capturedPointPatterns, new Size(65, 65), color); if (String.IsNullOrEmpty(GestureManager.Instance.GestureName)) { this.ExistingTextBlock.Visibility = this.ExistingGestureImage.Visibility = Visibility.Collapsed; this.txtGestureName.Focus(); } else { this.txtGestureName.Text = GestureManager.Instance.GestureName;//this.txtGestureName.Text if (!reName) { cmdDone.Content = LocalizationProvider.Instance.GetTextValue("Common.Overwrite"); txtGestureName.IsEnabled = false; var gesture = GestureManager.Instance.GetNewestGestureSample(); if (gesture != null) { this.ExistingGestureImage.Source = GestureImage.CreateImage(gesture.PointPatterns, new Size(65, 65), color); } return; } OverlayGestureButton.Visibility = cmdNext.Visibility = ExistingTextBlock.Visibility = ExistingGestureImage.Visibility = Visibility.Collapsed; this.txtGestureName.Focus(); this.txtGestureName.SelectAll(); } cmdDone.Content = LocalizationProvider.Instance.GetTextValue("Common.Save"); OverlayGestureButton.IsEnabled = _capturedPointPatterns.Length < 3; }