Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Internal / FreezableOperations.cs / 1305600 / FreezableOperations.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: FreezableOperations class definition. // // History: // 2005/02/02 : [....] - Created // //--------------------------------------------------------------------------- using System; using System.Windows; using MS.Internal.PresentationCore; namespace MS.Internal { ////// Internal static class which provides helper methods for common /// Freezable operations. /// [FriendAccessAllowed] // Built into Core, also used by Framework. internal static class FreezableOperations { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// A null-safe wrapper around Freezable.Clone(). (If a null /// is encountered it returns null.) /// internal static Freezable Clone(Freezable freezable) { if (freezable == null) { return null; } return freezable.Clone(); } ////// Semantically equivilent to Freezable.Clone().Freeze() except that /// GetAsFrozen avoids copying any portions of the Freezable graph /// which are already frozen. /// public static Freezable GetAsFrozen(Freezable freezable) { if (freezable == null) { return null; } return freezable.GetAsFrozen(); } ////// If freezable is already frozen, it returns freezable /// If freezable is not frozen, it returns a copy that is frozen if possible /// internal static Freezable GetAsFrozenIfPossible(Freezable freezable) { if (freezable == null) { return null; } if (freezable.CanFreeze) { freezable = freezable.GetAsFrozen(); } return freezable; } ////// Moves the specified changed handler from the old value /// to the new value correctly no-oping nulls. This is useful /// for non-Freezables which expose a Freezable property. /// internal static void PropagateChangedHandlers( Freezable oldValue, Freezable newValue, EventHandler changedHandler) { if (newValue != null && !newValue.IsFrozen) { newValue.Changed += changedHandler; } if (oldValue != null && !oldValue.IsFrozen) { oldValue.Changed -= changedHandler; } } #endregion Internal 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
- ReadOnlyHierarchicalDataSourceView.cs
- RevocationPoint.cs
- COM2AboutBoxPropertyDescriptor.cs
- InvalidPipelineStoreException.cs
- InstanceData.cs
- OLEDB_Enum.cs
- Boolean.cs
- SpeechEvent.cs
- RegexFCD.cs
- ResourceDictionaryCollection.cs
- TrustManagerMoreInformation.cs
- ServiceHostFactory.cs
- VerificationAttribute.cs
- FixedNode.cs
- MenuEventArgs.cs
- _NetworkingPerfCounters.cs
- PasswordBox.cs
- InternalCache.cs
- ResourceSet.cs
- AnnotationResource.cs
- SplineQuaternionKeyFrame.cs
- PropertyItemInternal.cs
- BrowserTree.cs
- TextRangeProviderWrapper.cs
- RightsManagementEncryptionTransform.cs
- UnitySerializationHolder.cs
- odbcmetadatafactory.cs
- RepeaterCommandEventArgs.cs
- CompilerParameters.cs
- MSAANativeProvider.cs
- InvokeGenerator.cs
- DataGridViewCellConverter.cs
- SmiGettersStream.cs
- NameTable.cs
- DbMetaDataColumnNames.cs
- TreeNodeEventArgs.cs
- JpegBitmapEncoder.cs
- ActivityScheduledQuery.cs
- SequenceNumber.cs
- Guid.cs
- FileDetails.cs
- HandledMouseEvent.cs
- Int32RectValueSerializer.cs
- CounterSample.cs
- TypeContext.cs
- CalculatedColumn.cs
- DataGridViewButtonCell.cs
- SpellCheck.cs
- CaseInsensitiveComparer.cs
- ToolStripItemBehavior.cs
- EntityDataSource.cs
- GPRECTF.cs
- ProfessionalColors.cs
- ConstraintManager.cs
- DataGridViewCellCancelEventArgs.cs
- CodeArrayCreateExpression.cs
- MinMaxParagraphWidth.cs
- CodeValidator.cs
- XPathDocumentIterator.cs
- XmlSchemaComplexContentExtension.cs
- MemberPathMap.cs
- GeneralTransform3D.cs
- XPathQueryGenerator.cs
- GlyphRun.cs
- KeyInfo.cs
- HttpEncoderUtility.cs
- BufferedStream.cs
- WebServiceErrorEvent.cs
- LastQueryOperator.cs
- WebPartDisplayModeCancelEventArgs.cs
- AnnotationComponentManager.cs
- ComponentDispatcher.cs
- InternalSafeNativeMethods.cs
- WebPartConnectionsCancelVerb.cs
- HeaderElement.cs
- ItemsPanelTemplate.cs
- MergeFilterQuery.cs
- ListMarkerSourceInfo.cs
- ListViewSortEventArgs.cs
- FeatureAttribute.cs
- PowerModeChangedEventArgs.cs
- CorrelationTokenTypeConvertor.cs
- BrowserCapabilitiesFactoryBase.cs
- ConfigUtil.cs
- SqlDataSourceConnectionPanel.cs
- FlowDocumentPaginator.cs
- InkPresenter.cs
- ResourceDescriptionAttribute.cs
- DocumentViewerBase.cs
- WizardPanel.cs
- SqlTriggerAttribute.cs
- ImageListUtils.cs
- SourceChangedEventArgs.cs
- SqlUtils.cs
- EastAsianLunisolarCalendar.cs
- Schema.cs
- FixedStringLookup.cs
- GridToolTip.cs
- XmlSchemaDatatype.cs
- ToolboxItemImageConverter.cs