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 / RenderDataDrawingContext.cs / 1 / RenderDataDrawingContext.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2003 // // File: RenderDataDrawingContext.cs // // History: // GSchneid: 04/19/2003 // Created it based on the RenderDataDrawingContext used in the AvPhat branch. // adsmith: 07/02/2003 // Renamed to RenderDataDrawingContext, which derives from DrawingContext // adsmith: 07/02/2003 // Renamed to RenderDataDrawingContext, which derives from DrawingContext // This class no longer understand Visuals, and simply produces RenderData. // //----------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Security.Permissions; using System.Windows; using System.Windows.Threading; using System.Windows.Media.Animation; using System.Windows.Media; using System.Windows.Media.Composition; using System.Diagnostics; using MS.Internal; using System.Security; //----------------------------------------------------------------------------- // This section lists various things that we could improve on the DrawingContxt // class. // // - Remove the isAnimated flag from being propagated everywhere. Rather mark // the pail when we add an animated argument. //----------------------------------------------------------------------------- namespace System.Windows.Media { ////// Drawing context. /// internal partial class RenderDataDrawingContext : DrawingContext, IDisposable { #region Constructors ////// Creates a drawing context which is associated with a given Dispatcher /// internal RenderDataDrawingContext() { } #endregion Constructors #region Public Methods internal RenderData GetRenderData() { return _renderData; } ////// Closes the DrawingContext and flushes the content. /// Afterwards the DrawingContext can not be used anymore. /// This call does not require all Push calls to have been Popped. /// ////// This call is illegal if this object has already been closed or disposed. /// public override void Close() { VerifyApiNonstructuralChange(); ((IDisposable)this).Dispose(); } ////// This is the same as the Close call: /// Closes the DrawingContext and flushes the content. /// Afterwards the DrawingContext can not be used anymore. /// This call does not require all Push calls to have been Popped. /// ////// This call is illegal if this object has already been closed or disposed. /// protected override void DisposeCore() { if (!_disposed) { EnsureCorrectNesting(); CloseCore(_renderData); _disposed = true; } } #endregion Public Methods #region Protected Methods ////// CloseCore - Implemented be derivees to Close the context. /// This will only be called once (if ever) per instance. /// /// The render data produced by this RenderDataDrawingContext. protected virtual void CloseCore(RenderData renderData) {} #endregion Protected Methods #region Private Methods ////// EnsureRenderData - this method ensures that the _renderData variable is initialized. /// The render data's _buffer will be lazily instantiated via the Draw* methods which all /// call WriteDataRecord. /// private void EnsureRenderData() { if (_renderData == null) { _renderData = new RenderData(); } } ////// This verifies that the API can be called for access which doesn't affect structure. /// protected override void VerifyApiNonstructuralChange() { base.VerifyApiNonstructuralChange(); if (_disposed) { throw new ObjectDisposedException("RenderDataDrawingContext"); } } ////// This method checks if there were any Push calls that were not matched by /// the corresponding Pop. If this is the case, this method adds corresponding /// number of Pop instructions to the render data. /// private void EnsureCorrectNesting() { if (_renderData != null && _stackDepth > 0) { int stackDepth = _stackDepth; for (int i = 0; i < stackDepth; i++) { Pop(); } } _stackDepth = 0; } #endregion Private Methods #region Fields private RenderData _renderData; private bool _disposed; private int _stackDepth; #endregion Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2003 // // File: RenderDataDrawingContext.cs // // History: // GSchneid: 04/19/2003 // Created it based on the RenderDataDrawingContext used in the AvPhat branch. // adsmith: 07/02/2003 // Renamed to RenderDataDrawingContext, which derives from DrawingContext // adsmith: 07/02/2003 // Renamed to RenderDataDrawingContext, which derives from DrawingContext // This class no longer understand Visuals, and simply produces RenderData. // //----------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Security.Permissions; using System.Windows; using System.Windows.Threading; using System.Windows.Media.Animation; using System.Windows.Media; using System.Windows.Media.Composition; using System.Diagnostics; using MS.Internal; using System.Security; //----------------------------------------------------------------------------- // This section lists various things that we could improve on the DrawingContxt // class. // // - Remove the isAnimated flag from being propagated everywhere. Rather mark // the pail when we add an animated argument. //----------------------------------------------------------------------------- namespace System.Windows.Media { ////// Drawing context. /// internal partial class RenderDataDrawingContext : DrawingContext, IDisposable { #region Constructors ////// Creates a drawing context which is associated with a given Dispatcher /// internal RenderDataDrawingContext() { } #endregion Constructors #region Public Methods internal RenderData GetRenderData() { return _renderData; } ////// Closes the DrawingContext and flushes the content. /// Afterwards the DrawingContext can not be used anymore. /// This call does not require all Push calls to have been Popped. /// ////// This call is illegal if this object has already been closed or disposed. /// public override void Close() { VerifyApiNonstructuralChange(); ((IDisposable)this).Dispose(); } ////// This is the same as the Close call: /// Closes the DrawingContext and flushes the content. /// Afterwards the DrawingContext can not be used anymore. /// This call does not require all Push calls to have been Popped. /// ////// This call is illegal if this object has already been closed or disposed. /// protected override void DisposeCore() { if (!_disposed) { EnsureCorrectNesting(); CloseCore(_renderData); _disposed = true; } } #endregion Public Methods #region Protected Methods ////// CloseCore - Implemented be derivees to Close the context. /// This will only be called once (if ever) per instance. /// /// The render data produced by this RenderDataDrawingContext. protected virtual void CloseCore(RenderData renderData) {} #endregion Protected Methods #region Private Methods ////// EnsureRenderData - this method ensures that the _renderData variable is initialized. /// The render data's _buffer will be lazily instantiated via the Draw* methods which all /// call WriteDataRecord. /// private void EnsureRenderData() { if (_renderData == null) { _renderData = new RenderData(); } } ////// This verifies that the API can be called for access which doesn't affect structure. /// protected override void VerifyApiNonstructuralChange() { base.VerifyApiNonstructuralChange(); if (_disposed) { throw new ObjectDisposedException("RenderDataDrawingContext"); } } ////// This method checks if there were any Push calls that were not matched by /// the corresponding Pop. If this is the case, this method adds corresponding /// number of Pop instructions to the render data. /// private void EnsureCorrectNesting() { if (_renderData != null && _stackDepth > 0) { int stackDepth = _stackDepth; for (int i = 0; i < stackDepth; i++) { Pop(); } } _stackDepth = 0; } #endregion Private Methods #region Fields private RenderData _renderData; private bool _disposed; private int _stackDepth; #endregion Fields } } // 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
- XmlSchemaComplexContentRestriction.cs
- SchemaConstraints.cs
- NativeMethods.cs
- Transform3D.cs
- MsmqHostedTransportManager.cs
- SqlCacheDependencyDatabaseCollection.cs
- SmiEventSink_Default.cs
- XmlHelper.cs
- FormParameter.cs
- UnionExpr.cs
- FloaterBaseParaClient.cs
- CqlParser.cs
- GeneralTransform3DGroup.cs
- ListCollectionView.cs
- PartialClassGenerationTask.cs
- GlyphShapingProperties.cs
- GridViewRowCollection.cs
- DebuggerService.cs
- OleDbParameter.cs
- RequestQueue.cs
- Activator.cs
- DataObjectSettingDataEventArgs.cs
- ScrollProviderWrapper.cs
- PathParser.cs
- DetectEofStream.cs
- Span.cs
- Int32Storage.cs
- DrawingGroupDrawingContext.cs
- SafeArrayRankMismatchException.cs
- MimeReflector.cs
- Documentation.cs
- CompilerGeneratedAttribute.cs
- ByteRangeDownloader.cs
- RIPEMD160Managed.cs
- PackageFilter.cs
- BaseProcessor.cs
- GenericPrincipal.cs
- DBCSCodePageEncoding.cs
- TagNameToTypeMapper.cs
- RuleSettingsCollection.cs
- SqlGatherConsumedAliases.cs
- ErrorFormatter.cs
- RadioButtonRenderer.cs
- Int32AnimationBase.cs
- SqlClientWrapperSmiStreamChars.cs
- RouteValueExpressionBuilder.cs
- XmlDocumentSurrogate.cs
- StartFileNameEditor.cs
- UnmanagedBitmapWrapper.cs
- Int32CollectionConverter.cs
- LocalBuilder.cs
- Subset.cs
- ChameleonKey.cs
- OptimizerPatterns.cs
- DataBoundControlAdapter.cs
- ExpandoClass.cs
- RequestCacheValidator.cs
- SqlDataSourceWizardForm.cs
- GestureRecognizer.cs
- CaseExpr.cs
- GridViewRowEventArgs.cs
- mediaeventargs.cs
- Path.cs
- AsyncWaitHandle.cs
- PerspectiveCamera.cs
- ListControlConvertEventArgs.cs
- FormatVersion.cs
- IsolatedStorageFile.cs
- EffectiveValueEntry.cs
- NavigateEvent.cs
- OleDbParameterCollection.cs
- CodeArrayCreateExpression.cs
- __ComObject.cs
- RunWorkerCompletedEventArgs.cs
- MimeTypePropertyAttribute.cs
- AQNBuilder.cs
- StrokeRenderer.cs
- BoundField.cs
- XMLDiffLoader.cs
- KeyNotFoundException.cs
- TogglePattern.cs
- _TLSstream.cs
- TextBox.cs
- SqlDataSource.cs
- LateBoundBitmapDecoder.cs
- SamlAuthorizationDecisionClaimResource.cs
- BehaviorEditorPart.cs
- webeventbuffer.cs
- DiagnosticStrings.cs
- _FtpControlStream.cs
- DataKeyArray.cs
- BaseValidatorDesigner.cs
- CompilerParameters.cs
- XmlNamespaceDeclarationsAttribute.cs
- DBSchemaRow.cs
- XmlResolver.cs
- TextSpan.cs
- DotExpr.cs
- PageStatePersister.cs
- StylusPointProperty.cs