public bool Check(T target, Key key, Key systemKey, object focusedControl, bool isPreview)
        {
            if (this.IsDisposed)
            {
                return(false);
            }
            if (!this.isFilterReset)
            {
                this.ResetPreFilters();
            }
            this.acted = false;
            var modifier = Keyboard.Modifiers;

            if (key == Key.System && modifier == ModifierKeys.Alt)
            {
                key = systemKey;
            }

            var preFilterArgs = new PreFilterArgs(focusedControl)
            {
                IsPreview = isPreview,
            };

            this.PreFilters.ForEach(x => x.Check(preFilterArgs));


            this.KeySubject.OnNext(new KeyActionContainer()
            {
                Target    = target,
                Key       = key,
                Modifier  = modifier,
                IsPreview = isPreview,
            });

            if (!isPreview)
            {
                this.isFilterReset = false;
            }

            return(this.acted);
        }
 public void Check(PreFilterArgs args)
 {
     this.Result = this.Filter(args);
 }