public ReaderViewBase() { this.DefaultStyleKey = typeof(ReaderViewBase); _gestureRecognizer = new GestureRecognizer(); _gestureRecognizer.GestureSettings = GestureSettings.ManipulationTranslateX; _gestureRecognizer.ManipulationStarted += _gestureRecognizer_ManipulationStarted; _gestureRecognizer.ManipulationUpdated += _gestureRecognizer_ManipulationUpdated; _gestureRecognizer.ManipulationCompleted += _gestureRecognizer_ManipulationCompleted; PointerWheelChangedEventHandler = new PointerEventHandler(_PointerWheelChanged); PointerPressedEventHandler = new PointerEventHandler(_PointerPressed); PointerMovedEventHandler = new PointerEventHandler(_PointerMoved); PointerReleasedEventHandler = new PointerEventHandler(_PointerReleased); PointerCanceledEventHandler = new PointerEventHandler(_PointerCanceled); TouchTappedEventHandler = new TappedEventHandler(_TouchTapped); TouchHoldingEventHandler = new HoldingEventHandler(_TouchHolding); this.AddHandler(UIElement.PointerWheelChangedEvent, PointerWheelChangedEventHandler, true); this.AddHandler(UIElement.PointerPressedEvent, PointerPressedEventHandler, true); this.AddHandler(UIElement.PointerMovedEvent, PointerMovedEventHandler, true); this.AddHandler(UIElement.PointerReleasedEvent, PointerReleasedEventHandler, true); this.AddHandler(UIElement.PointerCanceledEvent, PointerCanceledEventHandler, true); this.AddHandler(UIElement.TappedEvent, TouchTappedEventHandler, true); this.AddHandler(UIElement.HoldingEvent, TouchHoldingEventHandler, true); this.SizeChanged += ReaderViewBase_SizeChanged; CreateContentDelayer = new EventDelayer(); _tempOverflowList = new List <RenderOverflow>(); CreateContentDelayer.ResetWhenDelayed = true; CreateContentDelayer.Arrived += CreateContentWaiter_Arrived; }
/// <summary> /// shows how to create a event delayer and use it to listen to the events from a text box and call if no further changes for 2 seconds. /// </summary> private static void ShowUsage(System.Windows.Controls.TextBox textBox) { EventDelayer eventDelayer = new EventDelayer(TimeSpan.FromSeconds(2)); textBox.TextChanged += eventDelayer.Enqueue; eventDelayer.DelayedEvent += eventDelayer_DelayedEvent; }
/// <summary> /// Construct new menu builder with the view and member container. /// </summary> public MemberListViewMenu(IMemberListView view, MembersContainer container) { _container = container; _view = view; _dispatcher = Dispatcher.CurrentDispatcher; // menu needs to be rebuilt when selected items or the members in the container are changed _delayMenuRebuild = new EventDelayer<bool>(delegate { RebuildMenu(); return true; }, _dispatcher); _container.SavingChanges += delegate { _delayMenuRebuild.DelayEvent(); }; _view.SelectedItems.CollectionChanged += delegate { _delayMenuRebuild.DelayEvent(); }; }
public MainPage() { this.InitializeComponent(); resizeEventTimer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(100) }; resizeEventTimer.Tick += (sender, e) => UpdateImageControlSource(); resizeEventDelayer = new EventDelayer(TimeSpan.FromMilliseconds(100)); resizeEventDelayer.DelayedEvent += (sender, e) => UpdateImageControlSource(); }
public ReaderView() { this.DefaultStyleKey = typeof(ReaderView); _GestureRecognizer = new GestureRecognizer(); _GestureRecognizer.GestureSettings = GestureSettings.ManipulationTranslateX; _GestureRecognizer.ManipulationStarted += _GestureRecognizer_ManipulationStarted; _GestureRecognizer.ManipulationUpdated += _GestureRecognizer_ManipulationUpdated; _GestureRecognizer.ManipulationCompleted += _GestureRecognizer_ManipulationCompleted; PointerWheelChangedEventHandler = new PointerEventHandler(_PointerWheelChanged); PointerPressedEventHandler = new PointerEventHandler(_PointerPressed); PointerMovedEventHandler = new PointerEventHandler(_PointerMoved); PointerReleasedEventHandler = new PointerEventHandler(_PointerReleased); PointerCanceledEventHandler = new PointerEventHandler(_PointerCanceled); this.AddHandler(UIElement.PointerWheelChangedEvent, PointerWheelChangedEventHandler, true); this.AddHandler(UIElement.PointerPressedEvent, PointerPressedEventHandler, true); this.AddHandler(UIElement.PointerMovedEvent, PointerMovedEventHandler, true); this.AddHandler(UIElement.PointerReleasedEvent, PointerReleasedEventHandler, true); this.AddHandler(UIElement.PointerCanceledEvent, PointerCanceledEventHandler, true); this.SizeChanged += ReaderView_SizeChanged; IndexWaiter = new EventWaiter(); CreateContentDelayer = new EventDelayer(); CreateContentDelayer.ResetWhenDelayed = true; CreateContentDelayer.Arrived += CreateContentWaiter_Arrived; this.Unloaded += (s, a) => { this.RemoveHandler(UIElement.PointerWheelChangedEvent, PointerWheelChangedEventHandler); this.RemoveHandler(UIElement.PointerPressedEvent, PointerPressedEventHandler); this.RemoveHandler(UIElement.PointerMovedEvent, PointerMovedEventHandler); this.RemoveHandler(UIElement.PointerReleasedEvent, PointerReleasedEventHandler); this.RemoveHandler(UIElement.PointerCanceledEvent, PointerCanceledEventHandler); }; }
private static void ThreadProc(Object stateInfo) { EventDelayer thisObj = (EventDelayer)stateInfo; thisObj.HandleTimer(); }