Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1563 | Anzahl registrierter User: 1895 | Besucher online: 159
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

WPF Shortcut


Autor: Curry
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 4261
  
Kick it on dotnet-kicks.de  

Beschreibung:

Mit dieser Klasse lässt sich auf einfache Art und Weise ein Shortcut auf einem WPF-Fenster festlegen.

Abgelegt unter: wpf, shortcut, tastenkuerzel.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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
    }
}

Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



Diese Snippets könnten für Sie interessant sein:
[C#] Daten aus einer Datenbank in WPF darstellen
[C#] WPF-Steuerelemente in Windows Forms-Anwendung nutzen
[C#] Transparente WPF-Anwendung
[C#] Rechtschreibhilfe in .NET WPF Anwendung integrieren
[C#] Alle verfügbaren Farben mittels WPF ausgeben
[C#] WPF: Image aus dem Web in Image-Element anzeigen
[C#] Handle eines WPF Fensters ermitteln
[VB.NET] Theme für WPF-Anwendungen anwenden
[C#] WPF Fenster mit Aero Glass
[C#] Bilder aus *.resx Ressourcen Dateien in WPF verwenden
[C#] RoutedEvent erstellen
[C#] Automatische Anpassung der Breite von GridViewColumns
[C#] TaskDialog anzeigen
[C#] User-Management für WPF Smart Client Anwendung
[C#] WPF Formulare dynamisch laden
[C#] old Windows Forms Image to new WPF Image
[C#] FolderBrowseDialog in WPF
[C#] Drag-and-Drop-Binding in .NET 4
[C#] Spalten des WPF-DataGrid in .NET 4 anpassen
[C#] WPF-Anwendung mit .NET 4 entwickeln
[C#] WPF Tutorial: Auf Datenbankinhalte mit WCF zugreifen
[C#] WPF: Mit Validation Rules Eingaben validieren
[C#] WPF: Rechtschreibhilfe in Anwendung integrieren
[C#] WPF-Splash-Fenster
[VB.NET] Ist Silverlight im Design Modus oder in der IDE (WPF)
[C#] Ribbon-Oberfläche in WPF implementieren
[C#] Hochwertige (optisch ansprechende) WPF - Buttons
[C#] WPF - Buttons "OK/Cancel" - endlich unverwechselbar -
[C#] Visuelles Feedback fokussierter Text Boxen
[C#] TextBlock animiert ein- und ausblenden
[C#] InputBox WPF C#
[ASP.net] Favorite Icon
[VB.NET] Function zur Erstellung eines ShortCuts
[VB.NET] Make Shortcut

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.