public MainPage()

in WindowsSmartInk/EBC_InkDemo/Views/MainPage.xaml.cs [56:124]


        public MainPage()
        {
            this.InitializeComponent();
            _dataContextViewModel = this.DataContext as MainViewModel;
            _inkTimer = new DispatcherTimer() { Interval = TimeSpan.FromMilliseconds(_dataContextViewModel.InkProcessingDelay) };
            _dataContextViewModel.InkProcessingDelayChanged += (s, e) => {
                Debug.WriteLine($"InkDelayChanged");
                _inkTimer.Stop();
                _inkTimer.Interval = TimeSpan.FromMilliseconds(_dataContextViewModel.InkProcessingDelay);
                ClearCanvas();
            };
            _inactiveTimer.Tick += (s, e) => { ShowWelcome(); };
            _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();
                        UpdateAIStats(result);
                        await PlaceIconAsync(top.Key, top.Value, boundingBox);
                    }

                }
                catch (Exception ex)
                {


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

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

            inkCanvas.InkPresenter.StrokesCollected += (s, e) => {
                _inkTimer.Stop();
                _inactiveTimer.Stop();

                _pendingDry = _inkSync.BeginDry();
                foreach (var stroke in _pendingDry)
                    _sessionStrokes.Add(stroke);

                win2dCanvas.Invalidate();

                _inkTimer.Start();
                _inactiveTimer.Start();
            };

            _inkSync = inkCanvas.InkPresenter.ActivateCustomDrying();

            this.Unloaded += (s, e) => {
                win2dCanvas.RemoveFromVisualTree();
                win2dCanvas = null;
            };

            
        }