Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / DrawingCollection.cs / 1 / DrawingCollection.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: This file contains non-generated DrawingCollection // methods. // // History: // // 2005/03/18 : [....] - Created it. // //--------------------------------------------------------------------------- using System.Collections; using System.Collections.Generic; using System.Windows.Media.Animation; using System.Windows.Markup; namespace System.Windows.Media { ////// Collection of Drawing objects /// public sealed partial class DrawingCollection : Animatable, IList, IList{ /// /// Appends the entire input DrawingCollection, while only firing a single set of /// public events. If an exception is thrown from the public events, the /// Append operation is rolled back. /// internal void TransactionalAppend(DrawingCollection collectionToAppend) { // Use appendCount to avoid inconsistencies & runaway loops when // this == collectionToAppend, and to ensure collectionToAppend.Count // is only evaluated once. int appendCount = collectionToAppend.Count; // First, append the collection for(int i = 0; i < appendCount; i++) { AddWithoutFiringPublicEvents(collectionToAppend.Internal_GetItem(i)); } // Fire the public Changed event after all the elements have been added. // // If an exception is thrown, then the Append operation is rolled-back without // firing additional events. try { FireChanged(); } catch (Exception) { // Compute the number of elements that existed before the append int beforeAppendCount = Count - appendCount; // Remove the appended elements in reverse order without firing Changed events. for ( int i = Count - 1; // Start at the current last index i >= beforeAppendCount; // Until the previous last index i-- // Move to the preceding index ) { RemoveAtWithoutFiringPublicEvents(i); } // Avoid firing WritePostscript events (e.g., OnChanged) after rolling-back // the current operation. // // This ensures that only a single set of events is fired for both exceptional & // typical cases, and it's likely that firing events would cause another exception. throw; } } } } // 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
- EndPoint.cs
- ApplicationHost.cs
- TypeBuilderInstantiation.cs
- RewritingValidator.cs
- TextBoxLine.cs
- FlowLayoutSettings.cs
- SafeCoTaskMem.cs
- ZeroOpNode.cs
- httpserverutility.cs
- EncodingInfo.cs
- CodeIndexerExpression.cs
- DesignerVerb.cs
- ObjectTag.cs
- Configuration.cs
- OdbcErrorCollection.cs
- CompoundFileIOPermission.cs
- MdiWindowListStrip.cs
- _DomainName.cs
- XDeferredAxisSource.cs
- HtmlElementErrorEventArgs.cs
- InputLanguageProfileNotifySink.cs
- CodeCatchClause.cs
- WindowsEditBoxRange.cs
- WebPartConnectionsDisconnectVerb.cs
- PackageRelationshipSelector.cs
- Tile.cs
- InvokeWebServiceDesigner.cs
- CoreSwitches.cs
- ToolboxComponentsCreatedEventArgs.cs
- SqlCommandBuilder.cs
- ExternalFile.cs
- SimpleRecyclingCache.cs
- documentsequencetextcontainer.cs
- ObjectMemberMapping.cs
- RectIndependentAnimationStorage.cs
- StringUtil.cs
- TemplateColumn.cs
- RadioButtonRenderer.cs
- QualificationDataAttribute.cs
- ThemeableAttribute.cs
- GrammarBuilder.cs
- ValueChangedEventManager.cs
- StylusTip.cs
- DrawingContext.cs
- MetaModel.cs
- NotifyCollectionChangedEventArgs.cs
- AssemblyHash.cs
- PrintDialog.cs
- BorderSidesEditor.cs
- TypeBuilderInstantiation.cs
- CompiledWorkflowDefinitionContext.cs
- CustomCredentialPolicy.cs
- XmlQualifiedNameTest.cs
- ControlBuilderAttribute.cs
- EventEntry.cs
- FloatSumAggregationOperator.cs
- Matrix3D.cs
- WebServiceData.cs
- WebAdminConfigurationHelper.cs
- NamespaceDisplay.xaml.cs
- TargetControlTypeAttribute.cs
- linebase.cs
- ResourceDescriptionAttribute.cs
- InfiniteIntConverter.cs
- TextRunCache.cs
- RemoteWebConfigurationHostServer.cs
- EdmScalarPropertyAttribute.cs
- RowParagraph.cs
- PrintingPermissionAttribute.cs
- ReceiveParametersContent.cs
- FixedPage.cs
- WebPartZone.cs
- FrameworkElementAutomationPeer.cs
- WorkflowServiceBehavior.cs
- RealizedColumnsBlock.cs
- EnumConverter.cs
- Int32AnimationUsingKeyFrames.cs
- PixelFormat.cs
- DeviceContext.cs
- PageParserFilter.cs
- ColorPalette.cs
- AttributeExtensions.cs
- LinearKeyFrames.cs
- SystemResourceKey.cs
- SerializableReadOnlyDictionary.cs
- FormViewUpdatedEventArgs.cs
- GeneralTransformGroup.cs
- InternalBase.cs
- FontFamily.cs
- NamedPermissionSet.cs
- HMACSHA384.cs
- ParameterBuilder.cs
- PageAdapter.cs
- AsyncOperationContext.cs
- PreviewPageInfo.cs
- DataColumnChangeEvent.cs
- TimersDescriptionAttribute.cs
- AsyncOperation.cs
- _NTAuthentication.cs
- Frame.cs