public OperationContainerView CreateConsumer(InkStroke inkStroke)
        {
            foreach (OperationContainerView view in _inkableScene.Elements.Where(e => e is OperationContainerView))
            {
                var operationModel = ((OperationViewModel)view.DataContext).OperationModel;

                if (view.Geometry.Contains(inkStroke.Points[0].GetPoint()) && operationModel is IFilterProviderOperationModel)
                {
                    var operationContainerView = PanoramicDataWin8.controller.view.MainViewController.Instance.CopyOperationViewModel(
                        view.DataContext as OperationViewModel, inkStroke.Points.Last());
                    _filterConsumerOperationViewModel = (operationContainerView.DataContext as OperationViewModel).OperationModel as IFilterConsumerOperationModel;
                    return(operationContainerView);
                }
            }
            return(null);
        }
        public bool Recognize(InkStroke inkStroke)
        {
            if (!inkStroke.IsErase)
            {
                _filterProviderOperationViewModel = null;
                _filterConsumerOperationViewModel = null;


                foreach (OperationContainerView view in _inkableScene.Elements.Where(e => e is OperationContainerView))
                {
                    var operationModel = ((OperationViewModel)view.DataContext).OperationModel;

                    bool withinView = false;
                    if (view.Geometry.Contains(inkStroke.Points[0].GetPoint()) && operationModel is IFilterProviderOperationModel)
                    {
                        _filterProviderOperationViewModel = operationModel as IFilterProviderOperationModel;
                        withinView = true;
                    }
                    if (view.Geometry.Contains(inkStroke.Points[inkStroke.Points.Count - 1].GetPoint()) && operationModel is IFilterConsumerOperationModel)
                    {
                        if (_filterProviderOperationViewModel != operationModel)
                        {
                            _filterConsumerOperationViewModel = operationModel as IFilterConsumerOperationModel;
                        }
                        else if (withinView)
                        {
                            return(false);
                        }
                    }
                }

                if (_filterProviderOperationViewModel != null && (inkStroke.IsPause || _filterConsumerOperationViewModel != null))
                {
                    return(true);
                }
            }
            return(false);
        }