Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / LostFocusEventManager.cs / 1 / LostFocusEventManager.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Manager for the LostFocus event in the "weak event listener" // pattern. See WeakEventTable.cs for an overview. // //--------------------------------------------------------------------------- using System; using System.Windows; // WeakEventManager using MS.Internal; // Helper namespace System.Windows { ////// Manager for the DependencyObject.LostFocus event. /// public class LostFocusEventManager : WeakEventManager { #region Constructors // // Constructors // private LostFocusEventManager() { } #endregion Constructors #region Public Methods // // Public Methods // ////// Add a listener to the given source's event. /// public static void AddListener(DependencyObject source, IWeakEventListener listener) { CurrentManager.ProtectedAddListener(source, listener); } ////// Remove a listener to the given source's event. /// public static void RemoveListener(DependencyObject source, IWeakEventListener listener) { CurrentManager.ProtectedRemoveListener(source, listener); } #endregion Public Methods #region Protected Methods // // Protected Methods // ////// Listen to the given source for the event. /// protected override void StartListening(object source) { DependencyObject typedSource = (DependencyObject)source; FrameworkElement fe; FrameworkContentElement fce; Helper.DowncastToFEorFCE(typedSource, out fe, out fce, true); if (fe != null) fe.LostFocus += new RoutedEventHandler(OnLostFocus); else if (fce != null) fce.LostFocus += new RoutedEventHandler(OnLostFocus); } ////// Stop listening to the given source for the event. /// protected override void StopListening(object source) { DependencyObject typedSource = (DependencyObject)source; FrameworkElement fe; FrameworkContentElement fce; Helper.DowncastToFEorFCE(typedSource, out fe, out fce, true); if (fe != null) fe.LostFocus -= new RoutedEventHandler(OnLostFocus); else if (fce != null) fce.LostFocus -= new RoutedEventHandler(OnLostFocus); } #endregion Protected Methods #region Private Properties // // Private Properties // // get the event manager for the current thread private static LostFocusEventManager CurrentManager { get { Type managerType = typeof(LostFocusEventManager); LostFocusEventManager manager = (LostFocusEventManager)GetCurrentManager(managerType); // at first use, create and register a new manager if (manager == null) { manager = new LostFocusEventManager(); SetCurrentManager(managerType, manager); } return manager; } } #endregion Private Properties #region Private Methods // // Private Methods // // event handler for LostFocus event private void OnLostFocus(object sender, RoutedEventArgs args) { DeliverEvent(sender, args); } #endregion Private Methods } } // 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
- WebPartConnectionsCancelEventArgs.cs
- NameTable.cs
- CodeDomSerializer.cs
- FormsIdentity.cs
- StreamingContext.cs
- DesignerWebPartChrome.cs
- MdiWindowListItemConverter.cs
- NotCondition.cs
- FormatSettings.cs
- Properties.cs
- DocumentPaginator.cs
- Application.cs
- XmlNotation.cs
- Convert.cs
- TailCallAnalyzer.cs
- Command.cs
- PopupRootAutomationPeer.cs
- DocumentGrid.cs
- PnrpPermission.cs
- NetPeerTcpBinding.cs
- ServiceDescriptionContext.cs
- HtmlHead.cs
- RIPEMD160Managed.cs
- ADConnectionHelper.cs
- Action.cs
- TreeViewItemAutomationPeer.cs
- PipelineModuleStepContainer.cs
- SplitterEvent.cs
- InvalidOperationException.cs
- DbProviderServices.cs
- RelationshipEndMember.cs
- TreeView.cs
- DataProtectionSecurityStateEncoder.cs
- ExtendedProperty.cs
- DataErrorValidationRule.cs
- ServiceDurableInstanceContextProvider.cs
- XmlReflectionImporter.cs
- SqlParameterCollection.cs
- DataGridViewColumnCollectionEditor.cs
- BindingOperations.cs
- XPathException.cs
- ContextMenuStripActionList.cs
- SqlRemoveConstantOrderBy.cs
- XmlDataSourceView.cs
- HttpDebugHandler.cs
- PaperSource.cs
- Ipv6Element.cs
- Button.cs
- Thickness.cs
- SiteMembershipCondition.cs
- ResourceKey.cs
- XmlDigitalSignatureProcessor.cs
- ParallelEnumerable.cs
- GridViewRowPresenterBase.cs
- CheckBoxPopupAdapter.cs
- ContentElementAutomationPeer.cs
- ProtocolsConfiguration.cs
- FlowLayoutPanel.cs
- IsolatedStorageFilePermission.cs
- Comparer.cs
- TypeUtils.cs
- ObjectDataProvider.cs
- ImageMapEventArgs.cs
- TableCell.cs
- State.cs
- SafeNativeMethods.cs
- ClientScriptManagerWrapper.cs
- InvocationExpression.cs
- TypeSource.cs
- WindowsToolbarAsMenu.cs
- HtmlTitle.cs
- OdbcConnectionStringbuilder.cs
- Shape.cs
- XamlFrame.cs
- ForEachDesigner.xaml.cs
- ObjectDesignerDataSourceView.cs
- TileBrush.cs
- OdbcParameterCollection.cs
- DefaultTraceListener.cs
- WizardForm.cs
- GlyphInfoList.cs
- PagedDataSource.cs
- GridViewColumnCollection.cs
- DataGridCommandEventArgs.cs
- SoapSchemaImporter.cs
- CustomAttributeSerializer.cs
- CharacterString.cs
- Model3DGroup.cs
- TypeValidationEventArgs.cs
- ThreadStateException.cs
- _AutoWebProxyScriptHelper.cs
- Input.cs
- ListViewContainer.cs
- Rect3DValueSerializer.cs
- EntityDataSourceContainerNameConverter.cs
- XmlDomTextWriter.cs
- SmtpException.cs
- TextTreeUndoUnit.cs
- SingleKeyFrameCollection.cs
- XmlSortKey.cs