Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / RenderDataDrawingContext.cs / 1 / RenderDataDrawingContext.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2003 // // File: RenderDataDrawingContext.cs // // History: // [....]: 04/19/2003 // Created it based on the RenderDataDrawingContext used in the AvPhat branch. // [....]: 07/02/2003 // Renamed to RenderDataDrawingContext, which derives from DrawingContext // [....]: 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AutoScrollExpandMessageFilter.cs
- SpellerHighlightLayer.cs
- URL.cs
- CodeAttributeArgument.cs
- ExtentCqlBlock.cs
- EventListenerClientSide.cs
- fixedPageContentExtractor.cs
- ConnectionStringsExpressionEditor.cs
- ExpressionBinding.cs
- SpStreamWrapper.cs
- ContainerUtilities.cs
- XmlUtf8RawTextWriter.cs
- TraceSwitch.cs
- SmiContextFactory.cs
- SizeAnimation.cs
- AxHostDesigner.cs
- BlurBitmapEffect.cs
- VariableExpressionConverter.cs
- IconBitmapDecoder.cs
- OrderByQueryOptionExpression.cs
- GridItem.cs
- HandlerFactoryCache.cs
- FileStream.cs
- DropShadowBitmapEffect.cs
- HiddenFieldPageStatePersister.cs
- SignedXml.cs
- ButtonRenderer.cs
- DragAssistanceManager.cs
- Thumb.cs
- FixedSOMTableCell.cs
- RegexCode.cs
- UnsafeNativeMethods.cs
- ScriptControlManager.cs
- ImmutableObjectAttribute.cs
- WebPartEditVerb.cs
- MediaPlayer.cs
- Thread.cs
- Point3DCollectionValueSerializer.cs
- WsatConfiguration.cs
- PropertyTabChangedEvent.cs
- ImageCodecInfo.cs
- SimpleTypeResolver.cs
- Debugger.cs
- TableHeaderCell.cs
- InvalidDataException.cs
- ZipIOExtraFieldPaddingElement.cs
- ComponentCollection.cs
- SmtpReplyReaderFactory.cs
- BitmapData.cs
- LowerCaseStringConverter.cs
- NumberFormatter.cs
- Bold.cs
- TextEffectResolver.cs
- Stackframe.cs
- FlowDocument.cs
- ReadOnlyPermissionSet.cs
- XmlCollation.cs
- DialogResultConverter.cs
- PageStatePersister.cs
- XmlSerializationWriter.cs
- XmlElementAttributes.cs
- ThrowHelper.cs
- ConfigurationStrings.cs
- InternalRelationshipCollection.cs
- SerializableReadOnlyDictionary.cs
- Emitter.cs
- GridView.cs
- SyndicationContent.cs
- SQLCharsStorage.cs
- FrameworkElementAutomationPeer.cs
- ColumnReorderedEventArgs.cs
- TreeNodeBindingCollection.cs
- ObjectAnimationUsingKeyFrames.cs
- Code.cs
- HMACSHA512.cs
- TextBreakpoint.cs
- MimeParameterWriter.cs
- UnmanagedHandle.cs
- FontSizeConverter.cs
- TextAutomationPeer.cs
- ApplicationContext.cs
- RichTextBox.cs
- AppDomainAttributes.cs
- IncomingWebResponseContext.cs
- SizeAnimationClockResource.cs
- LinkTarget.cs
- SelectingProviderEventArgs.cs
- OleDbConnectionFactory.cs
- ConfigXmlText.cs
- Int32.cs
- TypePresenter.xaml.cs
- HttpServerUtilityWrapper.cs
- EncodingStreamWrapper.cs
- EncodingDataItem.cs
- LicenseProviderAttribute.cs
- PrintDialog.cs
- FolderBrowserDialogDesigner.cs
- AttachedPropertyBrowsableAttribute.cs
- InnerItemCollectionView.cs
- EntityDataSourceStatementEditorForm.cs