Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / Input / Keyboard.cs / 1 / Keyboard.cs
using System; using System.Windows; using MS.Win32; using System.Security; using System.Security.Permissions; namespace System.Windows.Input { ////// The Keyboard class represents the mouse device to the /// members of a context. /// ////// The static members of this class simply delegate to the primary /// keyboard device of the calling thread's input manager. /// public static class Keyboard { ////// PreviewKeyDown /// public static readonly RoutedEvent PreviewKeyDownEvent = EventManager.RegisterRoutedEvent("PreviewKeyDown", RoutingStrategy.Tunnel, typeof(KeyEventHandler), typeof(Keyboard)); ////// Adds a handler for the PreviewKeyDown attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddPreviewKeyDownHandler(DependencyObject element, KeyEventHandler handler) { UIElement.AddHandler(element, PreviewKeyDownEvent, handler); } ////// Removes a handler for the PreviewKeyDown attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be removed public static void RemovePreviewKeyDownHandler(DependencyObject element, KeyEventHandler handler) { UIElement.RemoveHandler(element, PreviewKeyDownEvent, handler); } ////// KeyDown /// public static readonly RoutedEvent KeyDownEvent = EventManager.RegisterRoutedEvent("KeyDown", RoutingStrategy.Bubble, typeof(KeyEventHandler), typeof(Keyboard)); ////// Adds a handler for the KeyDown attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddKeyDownHandler(DependencyObject element, KeyEventHandler handler) { UIElement.AddHandler(element, KeyDownEvent, handler); } ////// Removes a handler for the KeyDown attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be removed public static void RemoveKeyDownHandler(DependencyObject element, KeyEventHandler handler) { UIElement.RemoveHandler(element, KeyDownEvent, handler); } ////// PreviewKeyUp /// public static readonly RoutedEvent PreviewKeyUpEvent = EventManager.RegisterRoutedEvent("PreviewKeyUp", RoutingStrategy.Tunnel, typeof(KeyEventHandler), typeof(Keyboard)); ////// Adds a handler for the PreviewKeyUp attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddPreviewKeyUpHandler(DependencyObject element, KeyEventHandler handler) { UIElement.AddHandler(element, PreviewKeyUpEvent, handler); } ////// Removes a handler for the PreviewKeyUp attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be removed public static void RemovePreviewKeyUpHandler(DependencyObject element, KeyEventHandler handler) { UIElement.RemoveHandler(element, PreviewKeyUpEvent, handler); } ////// KeyUp /// public static readonly RoutedEvent KeyUpEvent = EventManager.RegisterRoutedEvent("KeyUp", RoutingStrategy.Bubble, typeof(KeyEventHandler), typeof(Keyboard)); ////// Adds a handler for the KeyUp attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddKeyUpHandler(DependencyObject element, KeyEventHandler handler) { UIElement.AddHandler(element, KeyUpEvent, handler); } ////// Removes a handler for the KeyUp attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void RemoveKeyUpHandler(DependencyObject element, KeyEventHandler handler) { UIElement.RemoveHandler(element, KeyUpEvent, handler); } ////// PreviewGotKeyboardFocus /// public static readonly RoutedEvent PreviewGotKeyboardFocusEvent = EventManager.RegisterRoutedEvent("PreviewGotKeyboardFocus", RoutingStrategy.Tunnel, typeof(KeyboardFocusChangedEventHandler), typeof(Keyboard)); ////// Adds a handler for the PreviewGotKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddPreviewGotKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.AddHandler(element, PreviewGotKeyboardFocusEvent, handler); } ////// Removes a handler for the PreviewGotKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void RemovePreviewGotKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.RemoveHandler(element, PreviewGotKeyboardFocusEvent, handler); } ////// GotKeyboardFocus /// public static readonly RoutedEvent GotKeyboardFocusEvent = EventManager.RegisterRoutedEvent("GotKeyboardFocus", RoutingStrategy.Bubble, typeof(KeyboardFocusChangedEventHandler), typeof(Keyboard)); ////// Adds a handler for the GotKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddGotKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.AddHandler(element, GotKeyboardFocusEvent, handler); } ////// Removes a handler for the GotKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be removed public static void RemoveGotKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.RemoveHandler(element, GotKeyboardFocusEvent, handler); } ////// PreviewLostKeyboardFocus /// public static readonly RoutedEvent PreviewLostKeyboardFocusEvent = EventManager.RegisterRoutedEvent("PreviewLostKeyboardFocus", RoutingStrategy.Tunnel, typeof(KeyboardFocusChangedEventHandler), typeof(Keyboard)); ////// Adds a handler for the PreviewLostKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddPreviewLostKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.AddHandler(element, PreviewLostKeyboardFocusEvent, handler); } ////// Removes a handler for the PreviewLostKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be removed public static void RemovePreviewLostKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.RemoveHandler(element, PreviewLostKeyboardFocusEvent, handler); } ////// LostKeyboardFocus /// public static readonly RoutedEvent LostKeyboardFocusEvent = EventManager.RegisterRoutedEvent("LostKeyboardFocus", RoutingStrategy.Bubble, typeof(KeyboardFocusChangedEventHandler), typeof(Keyboard)); ////// Adds a handler for the LostKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddLostKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.AddHandler(element, LostKeyboardFocusEvent, handler); } ////// Removes a handler for the LostKeyboardFocus attached event /// /// UIElement or ContentElement that removedto this event /// Event Handler to be removed public static void RemoveLostKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.RemoveHandler(element, LostKeyboardFocusEvent, handler); } ////// Returns the element that the keyboard is focused on. /// public static IInputElement FocusedElement { get { return Keyboard.PrimaryDevice.FocusedElement; } } ////// Focuses the keyboard on a particular element. /// /// /// The element to focus the keyboard on. /// public static IInputElement Focus(IInputElement element) { return Keyboard.PrimaryDevice.Focus(element); } ////// The set of modifier keys currently pressed. /// public static ModifierKeys Modifiers { get { return Keyboard.PrimaryDevice.Modifiers; } } ////// Returns whether or not the specified key is down. /// public static bool IsKeyDown(Key key) { return Keyboard.PrimaryDevice.IsKeyDown(key); } ////// Returns whether or not the specified key is up. /// public static bool IsKeyUp(Key key) { return Keyboard.PrimaryDevice.IsKeyUp(key); } ////// Returns whether or not the specified key is toggled. /// public static bool IsKeyToggled(Key key) { return Keyboard.PrimaryDevice.IsKeyToggled(key); } ////// Returns the state of the specified key. /// public static KeyStates GetKeyStates(Key key) { return Keyboard.PrimaryDevice.GetKeyStates(key); } ////// The primary keyboard device. /// ////// Critical: This code accesses the InputManager which causes an elevation /// PublicOK: It is ok to return the primary device /// public static KeyboardDevice PrimaryDevice { [SecurityCritical] get { KeyboardDevice keyboardDevice = InputManager.UnsecureCurrent.PrimaryKeyboardDevice; return keyboardDevice; } } // Check for Valid enum, as any int can be casted to the enum. internal static bool IsValidKey(Key key) { return ((int)key >= (int)Key.None && (int)key <= (int)Key.OemClear); } ////// Critical: This code accesses critical data(_activeSource) /// TreatAsSafe: Although it accesses critical data it does not modify or expose it, only compares against it. /// [SecurityCritical, SecurityTreatAsSafe] internal static bool IsFocusable(DependencyObject element) { // CODE if(element == null) { return false; } UIElement uie = element as UIElement; if(uie != null) { if(uie.IsVisible == false) { return false; } } if((bool)element.GetValue(UIElement.IsEnabledProperty) == false) { return false; } // CODE bool hasModifiers = false; BaseValueSourceInternal valueSource = element.GetValueSource(UIElement.FocusableProperty, null, out hasModifiers); bool focusable = (bool) element.GetValue(UIElement.FocusableProperty); if(!focusable && valueSource == BaseValueSourceInternal.Default && !hasModifiers) { // The Focusable property was not explicitly set to anything. // The default value is generally false, but true in a few cases. if(FocusManager.GetIsFocusScope(element)) { // Focus scopes are considered focusable, even if // the Focusable property is false. return true; } else if(uie != null && uie.InternalVisualParent == null) { PresentationSource presentationSource = PresentationSource.CriticalFromVisual(uie); if(presentationSource != null) { // A UIElements that is the root of a PresentationSource is considered focusable. return true; } } } return focusable; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Windows; using MS.Win32; using System.Security; using System.Security.Permissions; namespace System.Windows.Input { ////// The Keyboard class represents the mouse device to the /// members of a context. /// ////// The static members of this class simply delegate to the primary /// keyboard device of the calling thread's input manager. /// public static class Keyboard { ////// PreviewKeyDown /// public static readonly RoutedEvent PreviewKeyDownEvent = EventManager.RegisterRoutedEvent("PreviewKeyDown", RoutingStrategy.Tunnel, typeof(KeyEventHandler), typeof(Keyboard)); ////// Adds a handler for the PreviewKeyDown attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddPreviewKeyDownHandler(DependencyObject element, KeyEventHandler handler) { UIElement.AddHandler(element, PreviewKeyDownEvent, handler); } ////// Removes a handler for the PreviewKeyDown attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be removed public static void RemovePreviewKeyDownHandler(DependencyObject element, KeyEventHandler handler) { UIElement.RemoveHandler(element, PreviewKeyDownEvent, handler); } ////// KeyDown /// public static readonly RoutedEvent KeyDownEvent = EventManager.RegisterRoutedEvent("KeyDown", RoutingStrategy.Bubble, typeof(KeyEventHandler), typeof(Keyboard)); ////// Adds a handler for the KeyDown attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddKeyDownHandler(DependencyObject element, KeyEventHandler handler) { UIElement.AddHandler(element, KeyDownEvent, handler); } ////// Removes a handler for the KeyDown attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be removed public static void RemoveKeyDownHandler(DependencyObject element, KeyEventHandler handler) { UIElement.RemoveHandler(element, KeyDownEvent, handler); } ////// PreviewKeyUp /// public static readonly RoutedEvent PreviewKeyUpEvent = EventManager.RegisterRoutedEvent("PreviewKeyUp", RoutingStrategy.Tunnel, typeof(KeyEventHandler), typeof(Keyboard)); ////// Adds a handler for the PreviewKeyUp attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddPreviewKeyUpHandler(DependencyObject element, KeyEventHandler handler) { UIElement.AddHandler(element, PreviewKeyUpEvent, handler); } ////// Removes a handler for the PreviewKeyUp attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be removed public static void RemovePreviewKeyUpHandler(DependencyObject element, KeyEventHandler handler) { UIElement.RemoveHandler(element, PreviewKeyUpEvent, handler); } ////// KeyUp /// public static readonly RoutedEvent KeyUpEvent = EventManager.RegisterRoutedEvent("KeyUp", RoutingStrategy.Bubble, typeof(KeyEventHandler), typeof(Keyboard)); ////// Adds a handler for the KeyUp attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddKeyUpHandler(DependencyObject element, KeyEventHandler handler) { UIElement.AddHandler(element, KeyUpEvent, handler); } ////// Removes a handler for the KeyUp attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void RemoveKeyUpHandler(DependencyObject element, KeyEventHandler handler) { UIElement.RemoveHandler(element, KeyUpEvent, handler); } ////// PreviewGotKeyboardFocus /// public static readonly RoutedEvent PreviewGotKeyboardFocusEvent = EventManager.RegisterRoutedEvent("PreviewGotKeyboardFocus", RoutingStrategy.Tunnel, typeof(KeyboardFocusChangedEventHandler), typeof(Keyboard)); ////// Adds a handler for the PreviewGotKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddPreviewGotKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.AddHandler(element, PreviewGotKeyboardFocusEvent, handler); } ////// Removes a handler for the PreviewGotKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void RemovePreviewGotKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.RemoveHandler(element, PreviewGotKeyboardFocusEvent, handler); } ////// GotKeyboardFocus /// public static readonly RoutedEvent GotKeyboardFocusEvent = EventManager.RegisterRoutedEvent("GotKeyboardFocus", RoutingStrategy.Bubble, typeof(KeyboardFocusChangedEventHandler), typeof(Keyboard)); ////// Adds a handler for the GotKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddGotKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.AddHandler(element, GotKeyboardFocusEvent, handler); } ////// Removes a handler for the GotKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be removed public static void RemoveGotKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.RemoveHandler(element, GotKeyboardFocusEvent, handler); } ////// PreviewLostKeyboardFocus /// public static readonly RoutedEvent PreviewLostKeyboardFocusEvent = EventManager.RegisterRoutedEvent("PreviewLostKeyboardFocus", RoutingStrategy.Tunnel, typeof(KeyboardFocusChangedEventHandler), typeof(Keyboard)); ////// Adds a handler for the PreviewLostKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddPreviewLostKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.AddHandler(element, PreviewLostKeyboardFocusEvent, handler); } ////// Removes a handler for the PreviewLostKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be removed public static void RemovePreviewLostKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.RemoveHandler(element, PreviewLostKeyboardFocusEvent, handler); } ////// LostKeyboardFocus /// public static readonly RoutedEvent LostKeyboardFocusEvent = EventManager.RegisterRoutedEvent("LostKeyboardFocus", RoutingStrategy.Bubble, typeof(KeyboardFocusChangedEventHandler), typeof(Keyboard)); ////// Adds a handler for the LostKeyboardFocus attached event /// /// UIElement or ContentElement that listens to this event /// Event Handler to be added public static void AddLostKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.AddHandler(element, LostKeyboardFocusEvent, handler); } ////// Removes a handler for the LostKeyboardFocus attached event /// /// UIElement or ContentElement that removedto this event /// Event Handler to be removed public static void RemoveLostKeyboardFocusHandler(DependencyObject element, KeyboardFocusChangedEventHandler handler) { UIElement.RemoveHandler(element, LostKeyboardFocusEvent, handler); } ////// Returns the element that the keyboard is focused on. /// public static IInputElement FocusedElement { get { return Keyboard.PrimaryDevice.FocusedElement; } } ////// Focuses the keyboard on a particular element. /// /// /// The element to focus the keyboard on. /// public static IInputElement Focus(IInputElement element) { return Keyboard.PrimaryDevice.Focus(element); } ////// The set of modifier keys currently pressed. /// public static ModifierKeys Modifiers { get { return Keyboard.PrimaryDevice.Modifiers; } } ////// Returns whether or not the specified key is down. /// public static bool IsKeyDown(Key key) { return Keyboard.PrimaryDevice.IsKeyDown(key); } ////// Returns whether or not the specified key is up. /// public static bool IsKeyUp(Key key) { return Keyboard.PrimaryDevice.IsKeyUp(key); } ////// Returns whether or not the specified key is toggled. /// public static bool IsKeyToggled(Key key) { return Keyboard.PrimaryDevice.IsKeyToggled(key); } ////// Returns the state of the specified key. /// public static KeyStates GetKeyStates(Key key) { return Keyboard.PrimaryDevice.GetKeyStates(key); } ////// The primary keyboard device. /// ////// Critical: This code accesses the InputManager which causes an elevation /// PublicOK: It is ok to return the primary device /// public static KeyboardDevice PrimaryDevice { [SecurityCritical] get { KeyboardDevice keyboardDevice = InputManager.UnsecureCurrent.PrimaryKeyboardDevice; return keyboardDevice; } } // Check for Valid enum, as any int can be casted to the enum. internal static bool IsValidKey(Key key) { return ((int)key >= (int)Key.None && (int)key <= (int)Key.OemClear); } ////// Critical: This code accesses critical data(_activeSource) /// TreatAsSafe: Although it accesses critical data it does not modify or expose it, only compares against it. /// [SecurityCritical, SecurityTreatAsSafe] internal static bool IsFocusable(DependencyObject element) { // CODE if(element == null) { return false; } UIElement uie = element as UIElement; if(uie != null) { if(uie.IsVisible == false) { return false; } } if((bool)element.GetValue(UIElement.IsEnabledProperty) == false) { return false; } // CODE bool hasModifiers = false; BaseValueSourceInternal valueSource = element.GetValueSource(UIElement.FocusableProperty, null, out hasModifiers); bool focusable = (bool) element.GetValue(UIElement.FocusableProperty); if(!focusable && valueSource == BaseValueSourceInternal.Default && !hasModifiers) { // The Focusable property was not explicitly set to anything. // The default value is generally false, but true in a few cases. if(FocusManager.GetIsFocusScope(element)) { // Focus scopes are considered focusable, even if // the Focusable property is false. return true; } else if(uie != null && uie.InternalVisualParent == null) { PresentationSource presentationSource = PresentationSource.CriticalFromVisual(uie); if(presentationSource != null) { // A UIElements that is the root of a PresentationSource is considered focusable. return true; } } } return focusable; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QueuePathDialog.cs
- ConfigXmlWhitespace.cs
- ReferenceSchema.cs
- PeerHopCountAttribute.cs
- ImmutablePropertyDescriptorGridEntry.cs
- safelink.cs
- ComPlusServiceHost.cs
- WebPartTransformerCollection.cs
- controlskin.cs
- BoundConstants.cs
- RemoveStoryboard.cs
- ParserStack.cs
- EditCommandColumn.cs
- VariableAction.cs
- StateDesigner.CommentLayoutGlyph.cs
- DrawingAttributeSerializer.cs
- ExeConfigurationFileMap.cs
- BitVector32.cs
- PartialList.cs
- SortDescription.cs
- Thumb.cs
- MLangCodePageEncoding.cs
- ISAPIRuntime.cs
- X509Certificate.cs
- HijriCalendar.cs
- Rights.cs
- StringDictionary.cs
- ListDictionary.cs
- PngBitmapEncoder.cs
- Activator.cs
- baseaxisquery.cs
- ItemsChangedEventArgs.cs
- X509PeerCertificateAuthenticationElement.cs
- AlphaSortedEnumConverter.cs
- SpeechSynthesizer.cs
- DbDeleteCommandTree.cs
- DebugHandleTracker.cs
- Util.cs
- MetadataArtifactLoader.cs
- Run.cs
- HttpException.cs
- PageThemeBuildProvider.cs
- SettingsContext.cs
- AddInContractAttribute.cs
- basecomparevalidator.cs
- BaseServiceProvider.cs
- IfAction.cs
- IdnElement.cs
- WorkflowMarkupSerializationProvider.cs
- TypeExtension.cs
- FrameworkContentElement.cs
- CodeAttributeArgumentCollection.cs
- Query.cs
- ToolStripSplitStackLayout.cs
- oledbmetadatacolumnnames.cs
- SelectorItemAutomationPeer.cs
- DataGridViewHitTestInfo.cs
- ResourceReader.cs
- XmlCompatibilityReader.cs
- RedBlackList.cs
- CaseStatement.cs
- DescendantBaseQuery.cs
- TopClause.cs
- SecurityElement.cs
- TagPrefixAttribute.cs
- AssemblyAttributesGoHere.cs
- LineGeometry.cs
- ModelUIElement3D.cs
- XmlSchemaElement.cs
- PropertyGridCommands.cs
- LOSFormatter.cs
- DbConnectionPoolCounters.cs
- XmlDataProvider.cs
- DataGridViewTopRowAccessibleObject.cs
- CallContext.cs
- GCHandleCookieTable.cs
- TemplateBuilder.cs
- HashRepartitionStream.cs
- Bold.cs
- FixedSOMImage.cs
- EastAsianLunisolarCalendar.cs
- GeometryConverter.cs
- IncrementalCompileAnalyzer.cs
- SharedPersonalizationStateInfo.cs
- ListenerChannelContext.cs
- UiaCoreTypesApi.cs
- ConfigurationStrings.cs
- DbMetaDataColumnNames.cs
- PersonalizationStateInfo.cs
- ActivityScheduledQuery.cs
- TaskbarItemInfo.cs
- ValidateNames.cs
- EmptyStringExpandableObjectConverter.cs
- PieceNameHelper.cs
- CircleHotSpot.cs
- ColorContext.cs
- BackStopAuthenticationModule.cs
- Int32CollectionValueSerializer.cs
- HtmlInputHidden.cs
- CrossContextChannel.cs