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
- DispatcherBuilder.cs
- AlphabeticalEnumConverter.cs
- DefaultBindingPropertyAttribute.cs
- DtdParser.cs
- NaturalLanguageHyphenator.cs
- ResourcesBuildProvider.cs
- EnvelopedPkcs7.cs
- ColorTranslator.cs
- ImageProxy.cs
- Pkcs9Attribute.cs
- XmlUrlResolver.cs
- SingleSelectRootGridEntry.cs
- WindowsTitleBar.cs
- ObservableDictionary.cs
- PreservationFileReader.cs
- DesignerResources.cs
- XmlSchemaSet.cs
- CacheAxisQuery.cs
- AppSecurityManager.cs
- TreeBuilderBamlTranslator.cs
- PropertyItemInternal.cs
- RSAPKCS1SignatureDeformatter.cs
- DefaultPropertiesToSend.cs
- RegexTree.cs
- FrameworkElementFactory.cs
- RegistryPermission.cs
- CmsUtils.cs
- ExpressionEditorAttribute.cs
- ImageBrush.cs
- typedescriptorpermission.cs
- SelectionPattern.cs
- TransformGroup.cs
- GlyphElement.cs
- ResourceProviderFactory.cs
- Int64AnimationBase.cs
- DirectoryObjectSecurity.cs
- XmlTextAttribute.cs
- AuthenticatedStream.cs
- HyperLinkStyle.cs
- SignerInfo.cs
- GuidelineSet.cs
- PostBackTrigger.cs
- DrawingContextWalker.cs
- SetIterators.cs
- IArgumentProvider.cs
- TextSelectionHelper.cs
- DeobfuscatingStream.cs
- IApplicationTrustManager.cs
- LoginUtil.cs
- LicenseContext.cs
- SiteMapDataSource.cs
- WaitHandle.cs
- _NTAuthentication.cs
- GroupQuery.cs
- ValidationRuleCollection.cs
- ProtectedConfiguration.cs
- FloaterParagraph.cs
- TimerEventSubscriptionCollection.cs
- ObjectViewListener.cs
- QilParameter.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- FieldReference.cs
- EntityConnectionStringBuilderItem.cs
- ButtonChrome.cs
- WhitespaceRule.cs
- LinearKeyFrames.cs
- ClientConfigurationHost.cs
- CompModSwitches.cs
- SelectionPattern.cs
- GenericIdentity.cs
- FtpRequestCacheValidator.cs
- TrustManagerPromptUI.cs
- QueryableFilterUserControl.cs
- DataListGeneralPage.cs
- ZipIOExtraField.cs
- OletxEnlistment.cs
- CodeDomLoader.cs
- XmlSchemaSimpleType.cs
- ResourceDisplayNameAttribute.cs
- CallSite.cs
- LocalFileSettingsProvider.cs
- CorePropertiesFilter.cs
- XamlFilter.cs
- SmiEventSink.cs
- FrameworkTemplate.cs
- XmlConvert.cs
- HtmlImage.cs
- SimpleExpression.cs
- InputScopeAttribute.cs
- ReferenceTypeElement.cs
- Size.cs
- BaseInfoTable.cs
- DesignSurface.cs
- Msmq.cs
- BoundColumn.cs
- login.cs
- StreamAsIStream.cs
- Html32TextWriter.cs
- PropertyRecord.cs
- FamilyMapCollection.cs