Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / 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 : timothyc - 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. // // Description: This file contains non-generated DrawingCollection // methods. // // History: // // 2005/03/18 : timothyc - 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ImageSourceValueSerializer.cs
- IxmlLineInfo.cs
- UnauthorizedWebPart.cs
- SectionInput.cs
- ExpressionBuilder.cs
- MultiByteCodec.cs
- SchemaTableColumn.cs
- GridViewEditEventArgs.cs
- RewritingPass.cs
- HtmlInputRadioButton.cs
- InvokeProviderWrapper.cs
- ExeConfigurationFileMap.cs
- ResourceDictionary.cs
- RowUpdatedEventArgs.cs
- CryptoApi.cs
- hresults.cs
- ScriptHandlerFactory.cs
- EntityDataSourceDesigner.cs
- ColumnMapTranslator.cs
- CustomErrorsSection.cs
- WebPartAddingEventArgs.cs
- WindowsTreeView.cs
- SqlUserDefinedTypeAttribute.cs
- WindowsPen.cs
- TouchesOverProperty.cs
- DocumentApplication.cs
- DbDataReader.cs
- OdbcRowUpdatingEvent.cs
- DataGridCheckBoxColumn.cs
- WpfPayload.cs
- DataGridViewAdvancedBorderStyle.cs
- IIS7ConfigurationLoader.cs
- DataGridViewCellStyleChangedEventArgs.cs
- StreamingContext.cs
- AutomationProperties.cs
- AdjustableArrowCap.cs
- FixedSOMFixedBlock.cs
- ConfigurationManagerInternalFactory.cs
- ForeignKeyConstraint.cs
- GridEntryCollection.cs
- ExpandCollapsePattern.cs
- NavigationService.cs
- XmlMemberMapping.cs
- MetadataSerializer.cs
- WebMessageEncodingBindingElement.cs
- XhtmlBasicControlAdapter.cs
- ListControlConvertEventArgs.cs
- BidOverLoads.cs
- BinaryObjectReader.cs
- SystemColorTracker.cs
- QueryResponse.cs
- DateTimeFormat.cs
- BitmapCacheBrush.cs
- ModuleConfigurationInfo.cs
- ExpressionBuilderCollection.cs
- DataGridViewCellCollection.cs
- BulletedList.cs
- Calendar.cs
- MessageQueueKey.cs
- XmlSchemaCollection.cs
- RijndaelManaged.cs
- PaintEvent.cs
- ObjectNavigationPropertyMapping.cs
- XPathNodeHelper.cs
- Perspective.cs
- XmlSchemaException.cs
- httpserverutility.cs
- StorageBasedPackageProperties.cs
- ReliabilityContractAttribute.cs
- PermissionRequestEvidence.cs
- PassportAuthenticationModule.cs
- Package.cs
- GridViewUpdateEventArgs.cs
- DomainUpDown.cs
- AgileSafeNativeMemoryHandle.cs
- AppDomainProtocolHandler.cs
- X509CertificateCollection.cs
- EllipticalNodeOperations.cs
- ResourceCategoryAttribute.cs
- TokenBasedSetEnumerator.cs
- ErrorFormatterPage.cs
- SmiRecordBuffer.cs
- LineSegment.cs
- CryptoStream.cs
- WeakReferenceList.cs
- RegexCompiler.cs
- RtfControls.cs
- Privilege.cs
- CultureNotFoundException.cs
- FloaterBaseParaClient.cs
- DocumentGrid.cs
- XmlAtomicValue.cs
- SecurityHelper.cs
- RenderDataDrawingContext.cs
- SimpleApplicationHost.cs
- OutOfProcStateClientManager.cs
- ViewStateModeByIdAttribute.cs
- ReadOnlyHierarchicalDataSource.cs
- RPIdentityRequirement.cs
- SubqueryRules.cs