Share via

The problem Recognition shape with ToggleSwitch

Javier R 211 Reputation points
2019-11-29T15:25:16.03+00:00

Hi:
the problem with ToggleSwitch, when I activate the ToggleSwitch does not do shape recognition but when I put it off it does shape recognitionlink text

private async void RecoShape_Toggled(object sender, RoutedEventArgs e)
{
var toggleSwitch = sender as ToggleSwitch;

if(toggleSwitch != null)
{
IF(tggleswitch.IsOn == true)

{
    recognitionCanvas.visibility = visibility.Visible;
}

}

}

Developer technologies | Universal Windows Platform (UWP)

1 answer

Sort by: Most helpful
  1. Javier R 211 Reputation points
    2019-12-06T18:52:39.073+00:00

    Hi:
    this is the code of recoginition of form in class cs

    private readonly Canvas _reconigtionCanvas;  
            private readonly InkCanvas _inkCanvas;  
      
            InkAnalyzer inkAnalyzer = new InkAnalyzer();  
            IReadOnlyList inkStrokes = null;  
            InkAnalysisResult inkAnalysisResults = null;  
      
      
            public InkRecognitionService(Canvas reconigtionCanvas, InkCanvas inkCanvas)  
            {  
                _reconigtionCanvas = reconigtionCanvas;  
                _inkCanvas = inkCanvas;  
      
      
            }  
      
      
              
      
      
      
            public void DrawEllipse(InkAnalysisInkDrawing shape)  
            {  
                var points = shape.Points;  
                Ellipse ellipse = new Ellipse();  
      
                ellipse.Width = shape.BoundingRect.Width;  
                ellipse.Width = shape.BoundingRect.Height;  
      
                Canvas.SetTop(ellipse, shape.BoundingRect.Top);  
                Canvas.SetLeft(ellipse, shape.BoundingRect.Left);  
      
                var brush = new SolidColorBrush(Windows.UI.ColorHelper.FromArgb(255, 0, 0, 255));  
                ellipse.Stroke = brush;  
                ellipse.StrokeThickness = 2;  
                _reconigtionCanvas.Children.Add(ellipse);  
            }  
      
            ///   
            ///   
            ///   
            ///   
      
            public void DrawPolygon(InkAnalysisInkDrawing shape)  
            {  
      
                List points = new List(shape.Points);  
                Polygon polygon = new Polygon();  
      
                foreach (Point point in points)  
                {  
                    polygon.Points.Add(point);  
                }  
      
                var brush = new SolidColorBrush(Windows.UI.ColorHelper.FromArgb(255, 0, 0, 255));  
                polygon.Stroke = brush;  
                polygon.StrokeThickness = 2;  
                _reconigtionCanvas.Children.Add(polygon);  
            }  
      
      
            public  async Task RecognizeStrokes()  
            {  
      
      
               inkStrokes = _inkCanvas.InkPresenter.StrokeContainer.GetStrokes();  
      
                if (inkStrokes.Count > 0)  
                {  
                    inkAnalyzer.AddDataForStrokes(inkStrokes);  
      
                    inkAnalysisResults = await inkAnalyzer.AnalyzeAsync();  
      
                    if (inkAnalysisResults.Status == InkAnalysisStatus.Updated)  
                    {  
                        var inkwordNodes =  
                           inkAnalyzer.AnalysisRoot.FindNodes(  
                               InkAnalysisNodeKind.InkWord);  
                        foreach (InkAnalysisInkWord node in inkwordNodes)  
                        {  
      
                            foreach (var strokeId in node.GetStrokeIds())  
                            {  
                                var stroke = _inkCanvas.InkPresenter.StrokeContainer.GetStrokeById(strokeId);  
                                stroke.Selected = true;  
                            }  
      
                            inkAnalyzer.RemoveDataForStrokes(node.GetStrokeIds());  
                        }  
      
                        _inkCanvas.InkPresenter.StrokeContainer.DeleteSelected();  
      
                        var inkdrawingNodes =  
                            inkAnalyzer.AnalysisRoot.FindNodes(  
                                InkAnalysisNodeKind.InkDrawing);  
      
                        foreach (InkAnalysisInkDrawing node in inkdrawingNodes)  
                        {  
                            if (node.DrawingKind == InkAnalysisDrawingKind.Drawing)  
                            {  
                                // Catch and process  unsupported shapes.  
                            }  
                            else  
                            {  
                                if (node.DrawingKind == InkAnalysisDrawingKind.Circle ||  
                                     node.DrawingKind == InkAnalysisDrawingKind.Ellipse  )  
                                {  
                                    DrawEllipse(node);  
                                     
                                }  
                                else  
                                {  
                                    DrawPolygon(node);  
      
                                     
      
      
                                }  
                                 
                                foreach (var strokeId in node.GetStrokeIds())  
                                {  
                                    var stroke = _inkCanvas.InkPresenter.StrokeContainer.GetStrokeById(strokeId);  
                                    stroke.Selected = true;  
                                }  
                            }  
      
                            inkAnalyzer.RemoveDataForStrokes(node.GetStrokeIds());  
                        }  
      
                        _inkCanvas.InkPresenter.StrokeContainer.DeleteSelected();  
                    }  
                }  
      
      
      
            }  
      
      
        }  
    }  
      
    

    Was this answer helpful?

    1 person found this answer helpful.

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.