using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Collections.Generic; using System.Linq; using Wex.Lib.Reactive; using Wex.Lib.Composition; using System.ComponentModel.Composition; using Wex.Lib.Interactions; namespace Wex.Lib.Demo.Extensions { [Export] public class ExportedTriggers { [ObservableExport(ExportName="KeyTrigger")] public IObservable<EventResult> KeyTrigger(object obj) { var control = obj as FrameworkElement; var trigger = from kd in control.GetKeyDown() select new EventResult() { Args = kd.EventArgs, Sender = kd.Sender }; return trigger; } [ObservableExport(ExportName = "ArrowKeyTrigger")] public static IObservable<EventResult> GetArrowKeyDown (object obj) { FrameworkElement el = obj as FrameworkElement; var arrows = new List<Key> { Key.Left, Key.Right, Key.Up, Key.Down }; var arrowsPressed = from kd in el.GetKeyDown() where arrows.Contains(kd.EventArgs.Key) select new EventResult() { Args = kd.EventArgs, Sender = kd.Sender }; return arrowsPressed; } } }
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)