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
- ExpandSegment.cs
- Brush.cs
- FilterException.cs
- SectionVisual.cs
- DataRowChangeEvent.cs
- TransactionChannelFactory.cs
- AssemblyCacheEntry.cs
- TextCompositionEventArgs.cs
- Viewport2DVisual3D.cs
- GridViewUpdateEventArgs.cs
- Char.cs
- DataProtection.cs
- InputProcessorProfilesLoader.cs
- printdlgexmarshaler.cs
- PtsHelper.cs
- login.cs
- DataBindingExpressionBuilder.cs
- TraceContextEventArgs.cs
- ScrollEvent.cs
- Registry.cs
- ToolStrip.cs
- Stacktrace.cs
- InternalDispatchObject.cs
- EncoderReplacementFallback.cs
- KeysConverter.cs
- TransformConverter.cs
- SqlGenerator.cs
- ZoneLinkButton.cs
- BevelBitmapEffect.cs
- EmulateRecognizeCompletedEventArgs.cs
- CopyAction.cs
- WebBrowserBase.cs
- QuadraticBezierSegment.cs
- DispatcherHooks.cs
- PreProcessInputEventArgs.cs
- HandlerElement.cs
- TypeNameParser.cs
- Synchronization.cs
- ProcessStartInfo.cs
- WindowsFormsEditorServiceHelper.cs
- filewebresponse.cs
- DataObjectEventArgs.cs
- Message.cs
- ImageClickEventArgs.cs
- As.cs
- TimeoutException.cs
- Converter.cs
- DataGridCaption.cs
- AxWrapperGen.cs
- QuaternionAnimationUsingKeyFrames.cs
- WmlPageAdapter.cs
- DataGridViewRowCancelEventArgs.cs
- GroupBoxRenderer.cs
- ColumnWidthChangedEvent.cs
- SwitchLevelAttribute.cs
- EmptyImpersonationContext.cs
- TogglePattern.cs
- MethodCallConverter.cs
- SchemaContext.cs
- CultureSpecificStringDictionary.cs
- TemplateBindingExtensionConverter.cs
- X509AsymmetricSecurityKey.cs
- BamlStream.cs
- EntityDataSourceState.cs
- Inline.cs
- CodeDomSerializationProvider.cs
- Wizard.cs
- LinkedList.cs
- ResourceIDHelper.cs
- FilteredAttributeCollection.cs
- ContextMarshalException.cs
- LicenseException.cs
- ChannelProtectionRequirements.cs
- PropertyInfoSet.cs
- DoubleStorage.cs
- SessionState.cs
- ListControl.cs
- TrackingParticipant.cs
- securitymgrsite.cs
- RequiredFieldValidator.cs
- ConditionalExpression.cs
- ResourceContainer.cs
- sqlnorm.cs
- DbUpdateCommandTree.cs
- ZipIOExtraFieldElement.cs
- EventRoute.cs
- ImageDrawing.cs
- IsolatedStoragePermission.cs
- PathGradientBrush.cs
- SvcMapFile.cs
- EntityDataSourceChangingEventArgs.cs
- PageContentAsyncResult.cs
- ObjectDataSource.cs
- SystemTcpConnection.cs
- InstanceKeyNotReadyException.cs
- WindowsImpersonationContext.cs
- DecimalAnimationUsingKeyFrames.cs
- DataServiceExpressionVisitor.cs
- KeyTimeConverter.cs
- CounterNameConverter.cs