Feedback

C# - WPF Shortcut

Veröffentlicht von am 16.04.2010
(1 Bewertungen)
Mit dieser Klasse lässt sich auf einfache Art und Weise ein Shortcut auf einem WPF-Fenster festlegen.
GFU-Schulungen  [Anzeige]

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

Angular mit ASP.NET Core für .NET-Entwickler

.NET ist Ihnen vertraut, als Entwickler verfügen Sie über einschlägige Kenntnisse. In diesem Kurs lernen Sie nun, Angular in .NET-Umgebungen einzusetzen. Sie verstehen das Konzept von Angular und integrieren das clientseitige JS-Framework sicher in.NET-Anwendungen.

using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;

namespace Shortcut
{
    /// <summary>
    /// Erstellt einen neuen Shortcut
    /// </summary>
    public class Shortcut
    {
        #region variables
        private Window mWindow;
        private List<Key> mKeys = new List<Key>();
        private Action mAction;
        private List<Key> pressedKeys = new List<Key>();
        #endregion

        #region properties
        /// <summary>
        /// Fenster, auf dem Shortcut gedrückt werden soll.
        /// </summary>
        public Window Window
        {
            get { return mWindow; }
            set { mWindow = value; }
        }
        /// <summary>
        /// Tasten, die gedrückt werden müssen, damit Aktion ausgeführt wird.
        /// </summary>
        public List<Key> Keys
        {
            get { return mKeys; }
            set { mKeys = value; }
        }
        /// <summary>
        /// Aktion, die bei Drücken der Shortcut-Tasten ausgeführt werden soll.
        /// </summary>
        public Action Action
        {
            get { return mAction; }
            set { mAction = value; }
        }
        #endregion

        #region ctor
        /// <summary>
        /// Initialisiert ein neues Shortcut.
        /// </summary>
        /// <param name="keys">Shortcuttasten, die Aktion auslösen.</param>
        /// <param name="action">Aktion, die ausgelöst werden soll.</param>
        public Shortcut(Window window, List<Key> keys, Action action)
        {
            this.Window = window;
            this.Window.KeyDown += new KeyEventHandler(Window_KeyDown);
            this.Window.KeyUp += new KeyEventHandler(Window_KeyUp);
            this.Keys = keys;
            this.Action = action;
        }
        #endregion

        #region events
        /// <summary>
        /// Wird ausgelöst, wenn auf dem Zielfenster eine Taste gedrückt wird.
        /// </summary>
        private void Window_KeyDown(object sender, KeyEventArgs e)
        {
            if (!this.pressedKeys.Contains(e.Key))
                this.pressedKeys.Add(e.Key);

            int counter = 0;

            foreach (Key key in this.Keys)
            {
                if (this.pressedKeys.Contains(key))
                    counter++;
            }

            if (this.Keys.Count > 0 && counter == this.Keys.Count)
            {
                this.Action();
                this.pressedKeys.Clear();
            }
        }
        /// <summary>
        /// Wird ausgelöst, wenn auf dem Zielfenster eine Taste losgelassen wird.
        /// </summary>
        private void Window_KeyUp(object sender, KeyEventArgs e)
        {
            this.pressedKeys.Remove(e.Key);
        }
        #endregion
    }
}

Abgelegt unter wpf, shortcut, tastenkuerzel.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!