Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Shared / MS / Internal / FreezableOperations.cs / 1 / 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. //---------------------------------------------------------------------------- // //// 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
- CFStream.cs
- ColorContextHelper.cs
- TextRange.cs
- FunctionQuery.cs
- OleDbCommand.cs
- CatalogZoneBase.cs
- StateDesigner.Layouts.cs
- EventSinkActivity.cs
- HttpServerUtilityWrapper.cs
- PeerName.cs
- GridViewCellAutomationPeer.cs
- DataRowCollection.cs
- MarshalByRefObject.cs
- NavigationProgressEventArgs.cs
- MenuItemBindingCollection.cs
- WindowsStartMenu.cs
- TextPenaltyModule.cs
- InternalsVisibleToAttribute.cs
- EvidenceBase.cs
- XmlDataDocument.cs
- PolyQuadraticBezierSegment.cs
- SRef.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- Enumerable.cs
- DataGridViewCellLinkedList.cs
- UnlockInstanceAsyncResult.cs
- SqlMethodCallConverter.cs
- XmlHierarchicalDataSourceView.cs
- KeySpline.cs
- RubberbandSelector.cs
- StorageEntityContainerMapping.cs
- ResourceDisplayNameAttribute.cs
- ObjectTag.cs
- ALinqExpressionVisitor.cs
- MemoryFailPoint.cs
- ToolBarTray.cs
- SqlLiftIndependentRowExpressions.cs
- EntityDataSourceDesigner.cs
- MarkupCompiler.cs
- ServiceDeploymentInfo.cs
- CursorConverter.cs
- AssociationTypeEmitter.cs
- ComponentManagerBroker.cs
- BitArray.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- AddInController.cs
- DataObjectPastingEventArgs.cs
- SqlPersonalizationProvider.cs
- JsonFormatGeneratorStatics.cs
- ExpressionServices.cs
- DataObjectSettingDataEventArgs.cs
- PathData.cs
- InvalidProgramException.cs
- ProcessHostServerConfig.cs
- PropertyGeneratedEventArgs.cs
- HMACSHA256.cs
- WorkflowServiceHost.cs
- FileReader.cs
- FontDriver.cs
- DataGridCommandEventArgs.cs
- PropertyOverridesTypeEditor.cs
- DrawingBrush.cs
- ProviderUtil.cs
- Ref.cs
- X500Name.cs
- EncryptedHeaderXml.cs
- TypeViewSchema.cs
- DrawingDrawingContext.cs
- VisualStyleTypesAndProperties.cs
- ControllableStoryboardAction.cs
- ReferenceTypeElement.cs
- ClientApiGenerator.cs
- ConfigurationPermission.cs
- ItemList.cs
- SqlServices.cs
- QueryTreeBuilder.cs
- Size.cs
- QilPatternFactory.cs
- DataTableClearEvent.cs
- RadioButtonStandardAdapter.cs
- JsonFormatGeneratorStatics.cs
- SystemNetHelpers.cs
- IdentitySection.cs
- TrustLevelCollection.cs
- AttachedAnnotation.cs
- WindowsImpersonationContext.cs
- Operators.cs
- CreateCardRequest.cs
- AttachmentService.cs
- TableColumnCollection.cs
- GacUtil.cs
- SelectedDatesCollection.cs
- UIElement.cs
- ContainerSelectorGlyph.cs
- SignatureHelper.cs
- QuaternionIndependentAnimationStorage.cs
- XMLSyntaxException.cs
- FileVersionInfo.cs
- XmlIgnoreAttribute.cs
- RulePatternOps.cs