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
- FixedStringLookup.cs
- HybridObjectCache.cs
- XhtmlTextWriter.cs
- WebPartDescription.cs
- SpeechSeg.cs
- SecondaryIndexList.cs
- TableAdapterManagerHelper.cs
- NegotiationTokenAuthenticatorStateCache.cs
- TreeSet.cs
- FilteredDataSetHelper.cs
- SoapEnumAttribute.cs
- SettingsProviderCollection.cs
- CodeGen.cs
- _SSPISessionCache.cs
- ZoneButton.cs
- WindowsRebar.cs
- PointKeyFrameCollection.cs
- MailSettingsSection.cs
- XmlNodeList.cs
- TemplateBuilder.cs
- safex509handles.cs
- CommandEventArgs.cs
- QuaternionValueSerializer.cs
- UnmanagedBitmapWrapper.cs
- KernelTypeValidation.cs
- OdbcDataReader.cs
- CaseInsensitiveOrdinalStringComparer.cs
- Rfc2898DeriveBytes.cs
- MultiAsyncResult.cs
- CroppedBitmap.cs
- AttributeTableBuilder.cs
- SystemTcpConnection.cs
- HtmlInputButton.cs
- QueryInterceptorAttribute.cs
- SubpageParaClient.cs
- SmtpClient.cs
- StrokeNodeOperations2.cs
- ToolStripGrip.cs
- TextTreeTextBlock.cs
- NonBatchDirectoryCompiler.cs
- BasePropertyDescriptor.cs
- ComboBoxAutomationPeer.cs
- CompositeControl.cs
- ViewBox.cs
- DirtyTextRange.cs
- ClientSession.cs
- DocumentOrderQuery.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- SmtpException.cs
- ConfigurationElementProperty.cs
- SystemSounds.cs
- PersonalizationDictionary.cs
- GridViewSelectEventArgs.cs
- mda.cs
- XamlContextStack.cs
- NavigateEvent.cs
- EntityDesignerUtils.cs
- StringConcat.cs
- ItemsChangedEventArgs.cs
- LocatorPartList.cs
- RayHitTestParameters.cs
- ReadOnlyNameValueCollection.cs
- XComponentModel.cs
- ColorEditor.cs
- PeerNearMe.cs
- StreamUpgradeAcceptor.cs
- BindToObject.cs
- ISO2022Encoding.cs
- CodeDomSerializationProvider.cs
- Listener.cs
- InvalidCastException.cs
- NGCSerializerAsync.cs
- ReferenceEqualityComparer.cs
- AnimationStorage.cs
- SwitchElementsCollection.cs
- SecurityRuntime.cs
- XmlSiteMapProvider.cs
- ProfileProvider.cs
- SimpleHandlerBuildProvider.cs
- ImageAutomationPeer.cs
- BuilderPropertyEntry.cs
- TypeToArgumentTypeConverter.cs
- Int64Converter.cs
- NamedPipeHostedTransportConfiguration.cs
- ResourceExpression.cs
- DataSourceDescriptorCollection.cs
- StorageComplexTypeMapping.cs
- IPHostEntry.cs
- ConfigurationStrings.cs
- WindowsUpDown.cs
- mactripleDES.cs
- xmlglyphRunInfo.cs
- SchemaCollectionPreprocessor.cs
- MutableAssemblyCacheEntry.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- XsdBuildProvider.cs
- KoreanLunisolarCalendar.cs
- SecurityTokenRequirement.cs
- HtmlShim.cs
- InputProcessorProfiles.cs