예제 #1
0
 private static void AutomateTabTipOpen(IObservable <Tuple <UIElement, bool> > focusObservable)
 {
     focusObservable
     .ObserveOn(Scheduler.Default)
     .Where(_ => IgnoreHardwareKeyboard == HardwareKeyboardIgnoreOptions.IgnoreAll || !HardwareKeyboard.IsConnectedAsync().Result)
     .Where(tuple => tuple.Item2 == true)
     .Do(_ => TabTip.OpenUndockedAndStartPoolingForClosedEvent())
     .ObserveOnDispatcher()
     .Subscribe(tuple => AnimationHelper.GetUIElementInToWorkAreaWithTabTipOpened(tuple.Item1));
 }
예제 #2
0
        private static void AutomateTabTipClose(IObservable <Tuple <UIElement, bool> > focusObservable, Subject <bool> tabTipClosedSubject)
        {
            focusObservable
            .ObserveOn(Scheduler.Default)
            .Where(_ => IgnoreHardwareKeyboard == HardwareKeyboardIgnoreOptions.IgnoreAll || !HardwareKeyboard.IsConnectedAsync().Result)
            .Throttle(TimeSpan.FromMilliseconds(100))     // Close only if no other UIElement got focus in 100 ms
            .Where(tuple => tuple.Item2 == false)
            .Do(_ => TabTip.Close())
            .Subscribe(_ => tabTipClosedSubject.OnNext(true));

            tabTipClosedSubject
            .ObserveOnDispatcher()
            .Subscribe(_ => AnimationHelper.GetEverythingInToWorkAreaWithTabTipClosed());
        }