public MainPage()

in WindowsSmartInk/SmartInkLaboratory/MainPage.xaml.cs [84:140]


        public MainPage()
        {
            this.InitializeComponent();

            _inkTimer.Tick += async (s, e) => {
                _inkTimer.Stop();
                var boundingBox = GetBoundingBox(_sessionStrokes);
                try
                {
                    var result = await _dataContextViewModel.ProcessInkAsync(_sessionStrokes);

                    if (result != null && result.Keys.Count > 0)
                    {
                        var top = (from r in result select r).First();
                        await PlaceIconAsync(top.Key, top.Value, boundingBox);
                    }

                    
                }
                catch (Exception ex)
                {


                }
                finally
                {
                    _sessionStrokes.Clear();
                    win2dCanvas.Invalidate();
                }
            };

            inkCanvas.InkPresenter.StrokeInput.StrokeStarted += (s, e) =>
            {
                _inkTimer.Stop();
            };

            inkCanvas.InkPresenter.StrokesCollected += (s, e) => {
                _inkTimer.Stop();
         
                _pendingDry = _inkSync.BeginDry();
                foreach (var stroke in _pendingDry)
                    _sessionStrokes.Add(stroke);

                win2dCanvas.Invalidate();
           
                _inkTimer.Start();
            };

            _inkSync = inkCanvas.InkPresenter.ActivateCustomDrying();
            
            _dataContextViewModel = this.DataContext as MainViewModel;
            
            this.Unloaded += (s, e) => {
                win2dCanvas.RemoveFromVisualTree();
                win2dCanvas = null;
            };
        }