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
- InteropExecutor.cs
- NullReferenceException.cs
- ProcessRequestAsyncResult.cs
- StateItem.cs
- HttpDebugHandler.cs
- FloatAverageAggregationOperator.cs
- RectangleF.cs
- FormsIdentity.cs
- ClientUrlResolverWrapper.cs
- TypeDependencyAttribute.cs
- EncryptedType.cs
- HtmlLiteralTextAdapter.cs
- SqlTriggerContext.cs
- WebPartVerb.cs
- WpfWebRequestHelper.cs
- DBConnectionString.cs
- TimeSpan.cs
- BackgroundWorker.cs
- FlowDocumentPaginator.cs
- DocComment.cs
- ArraySegment.cs
- CachedPathData.cs
- ToolStripDesignerAvailabilityAttribute.cs
- CharAnimationUsingKeyFrames.cs
- ThumbAutomationPeer.cs
- SplitContainer.cs
- URIFormatException.cs
- Material.cs
- PackWebRequest.cs
- FamilyCollection.cs
- CompensationToken.cs
- GlyphsSerializer.cs
- TableLayoutSettingsTypeConverter.cs
- HttpWebRequestElement.cs
- RemotingConfiguration.cs
- InfoCardTrace.cs
- CodeIterationStatement.cs
- ProcessHostFactoryHelper.cs
- ClientApiGenerator.cs
- SqlDependency.cs
- OuterGlowBitmapEffect.cs
- DiscriminatorMap.cs
- Separator.cs
- ElementAction.cs
- DbConnectionHelper.cs
- LinkedList.cs
- contentDescriptor.cs
- ViewManagerAttribute.cs
- XmlElementAttributes.cs
- RequestCachingSection.cs
- ListItemCollection.cs
- CommandManager.cs
- UrlPath.cs
- ElasticEase.cs
- TrailingSpaceComparer.cs
- CatalogZoneBase.cs
- ConfigXmlSignificantWhitespace.cs
- DataBindingHandlerAttribute.cs
- CollectionChangedEventManager.cs
- ImageAnimator.cs
- WebControlsSection.cs
- WmlImageAdapter.cs
- tooltip.cs
- CapabilitiesPattern.cs
- ValidationHelper.cs
- FileIOPermission.cs
- DateTimeOffset.cs
- SizeConverter.cs
- ExpressionStringBuilder.cs
- InputLanguageCollection.cs
- RelationshipSet.cs
- StringFormat.cs
- PageRanges.cs
- ArrayEditor.cs
- GetWinFXPath.cs
- XmlEntityReference.cs
- ParameterModifier.cs
- HealthMonitoringSectionHelper.cs
- WebMessageBodyStyleHelper.cs
- WebFormDesignerActionService.cs
- NativeMethods.cs
- EventLogInformation.cs
- CodePageUtils.cs
- IEnumerable.cs
- PenThreadPool.cs
- ProtocolsConfigurationEntry.cs
- Span.cs
- PageContentAsyncResult.cs
- XmlBindingWorker.cs
- Decoder.cs
- CounterCreationData.cs
- ServiceDurableInstance.cs
- DataGridViewImageColumn.cs
- Attributes.cs
- DocumentXPathNavigator.cs
- SimpleWebHandlerParser.cs
- SqlBuffer.cs
- SoapInteropTypes.cs
- RectangleConverter.cs
- WebPartConnectionsDisconnectVerb.cs