Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Input / Command / KeyBinding.cs / 1 / KeyBinding.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: The KeyBinding class is used by the developer to create Keyboard Input Bindings // // See spec at : [....]/coreui/Specs/Commanding(new).mht // //* KeyBinding class serves the purpose of Input Bindings for Keyboard Device. // // History: // 06/01/2003 : [....] - Created // 05/01/2004 : chandra - changed to accommodate new design // ( [....]/coreui/Specs/Commanding(new).mht ) //--------------------------------------------------------------------------- using System; using System.Windows.Input; using System.Windows; using System.ComponentModel; using System.Windows.Markup; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Input { ////// KeyBinding - Implements InputBinding (generic InputGesture-Command map) /// KeyBinding acts like a map for KeyGesture and Commands. /// Most of the logic is in InputBinding and KeyGesture, this only /// facilitates user to add Key/Modifiers directly without going in /// KeyGesture path. Also it provides the KeyGestureTypeConverter /// on the Gesture property to have KeyGesture, like Ctrl+X, Alt+V /// defined in Markup as Gesture="Ctrl+X" working /// public class KeyBinding : InputBinding { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructor ////// Constructor /// public KeyBinding() : base() { } ////// Constructor /// /// Command associated /// KeyGesture associated public KeyBinding(ICommand command, KeyGesture gesture) : base(command, gesture) { } ////// Constructor /// /// /// modifiers /// key public KeyBinding(ICommand command, Key key, ModifierKeys modifiers) : base(command, new KeyGesture(key, modifiers)) { } #endregion Constructor //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods ////// KeyGesture Override, to ensure type-safety and provide a /// TypeConverter for KeyGesture /// [TypeConverter(typeof(KeyGestureConverter))] [ValueSerializer(typeof(KeyGestureValueSerializer))] public override InputGesture Gesture { get { return base.Gesture as KeyGesture; } set { if (value is KeyGesture) { base.Gesture = value; } else { throw new ArgumentException(SR.Get(SRID.InputBinding_ExpectedInputGesture, typeof(KeyGesture))); } } } ////// Modifier /// public ModifierKeys Modifiers { get { lock (_dataLock) { if (null != Gesture) { return ((KeyGesture)Gesture).Modifiers; } return ModifierKeys.None; } } set { lock (_dataLock) { if (null == Gesture) { Gesture = new KeyGesture(Key.None, (ModifierKeys)value, /*validateGesture = */ false); } else { Gesture = new KeyGesture(((KeyGesture)Gesture).Key, value, /*validateGesture = */ false); } } } } ////// Key /// public Key Key { get { lock (_dataLock) { if (null != Gesture) { return ((KeyGesture)Gesture).Key; } return Key.None; } } set { lock (_dataLock) { if (null == Gesture) { Gesture = new KeyGesture((Key)value, ModifierKeys.None, /*validateGesture = */ false); } else { Gesture = new KeyGesture(value, ((KeyGesture)Gesture).Modifiers, /*validateGesture = */ false); } } } } #endregion Public Methods //------------------------------------------------------ // // Private Fields // //------------------------------------------------------ } } // 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
- sapiproxy.cs
- XslAst.cs
- PartialCachingAttribute.cs
- SiteMapNodeItemEventArgs.cs
- CheckBoxList.cs
- IListConverters.cs
- ToolBarPanel.cs
- Vector3DAnimation.cs
- TriggerActionCollection.cs
- DynamicDiscoveryDocument.cs
- ByteStream.cs
- ToolStripItemTextRenderEventArgs.cs
- UrlMapping.cs
- FormViewRow.cs
- RootAction.cs
- ThrowHelper.cs
- XhtmlBasicTextBoxAdapter.cs
- ImageAutomationPeer.cs
- DocumentViewerBaseAutomationPeer.cs
- HashCryptoHandle.cs
- QilUnary.cs
- RawStylusInput.cs
- CultureInfo.cs
- Keywords.cs
- ChameleonKey.cs
- AuthenticationConfig.cs
- SQLGuid.cs
- PeerNameRegistration.cs
- InstanceKeyView.cs
- recordstatefactory.cs
- XPathCompiler.cs
- RootBrowserWindow.cs
- StyleSheetDesigner.cs
- ProcessInputEventArgs.cs
- BamlRecordWriter.cs
- XmlSchemaValidator.cs
- EntitySqlQueryState.cs
- Model3DCollection.cs
- ContextMenu.cs
- FilterQuery.cs
- COM2Enum.cs
- exports.cs
- PeerHopCountAttribute.cs
- SharedConnectionWorkflowTransactionService.cs
- PageCatalogPart.cs
- TextRenderer.cs
- ReflectionPermission.cs
- WorkflowDesigner.cs
- ISAPIApplicationHost.cs
- MILUtilities.cs
- XsltFunctions.cs
- OutputScopeManager.cs
- TextParagraph.cs
- XmlSchemaSearchPattern.cs
- OdbcReferenceCollection.cs
- TcpClientCredentialType.cs
- AspNetCacheProfileAttribute.cs
- DmlSqlGenerator.cs
- HttpCapabilitiesBase.cs
- FolderBrowserDialog.cs
- Bits.cs
- TextBox.cs
- BamlLocalizableResourceKey.cs
- EditorZoneBase.cs
- errorpatternmatcher.cs
- FontInfo.cs
- WSHttpBindingCollectionElement.cs
- CryptoKeySecurity.cs
- ScriptingScriptResourceHandlerSection.cs
- EncryptedData.cs
- RoutedEvent.cs
- CreateUserWizard.cs
- UTF7Encoding.cs
- MouseButton.cs
- CodeTypeMemberCollection.cs
- ResourcesChangeInfo.cs
- HostingEnvironmentSection.cs
- SortedDictionary.cs
- EntityDesignerBuildProvider.cs
- ResolvePPIDRequest.cs
- CngProvider.cs
- SynchronizationHandlesCodeDomSerializer.cs
- XmlChildNodes.cs
- SymLanguageVendor.cs
- WinFormsUtils.cs
- ButtonDesigner.cs
- RSAOAEPKeyExchangeFormatter.cs
- XmlNamespaceManager.cs
- XmlLanguageConverter.cs
- AlgoModule.cs
- TempFiles.cs
- FileIOPermission.cs
- ReadOnlyHierarchicalDataSourceView.cs
- CustomPopupPlacement.cs
- SizeFConverter.cs
- KeyNotFoundException.cs
- RetrieveVirtualItemEventArgs.cs
- EdmMember.cs
- SqlDataReader.cs
- EdmScalarPropertyAttribute.cs