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 / DrawingContext.cs / 1 / DrawingContext.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2003 // // File: DrawingContext.cs // // History: // GSchneid: 04/19/2003 // Created it based on the RetainedDrawingContext used in the AvPhat branch. // adsmith: 07/02/2003 // Turned this class into an abstract base class for RetainedDrawingContext // and PaintingDrawingContext. // //----------------------------------------------------------------------------- using System; using System.Security.Permissions; using System.Windows; using System.Windows.Threading; using System.Windows.Media.Animation; using System.Windows.Media; using System.Diagnostics; using MS.Internal; using System.Runtime.InteropServices; using MS.Utility; namespace System.Windows.Media { ////// Drawing context. /// public abstract partial class DrawingContext : DispatcherObject, IDisposable { #region Constructors ////// Default constructor for DrawingContext - this uses the current Dispatcher. /// internal DrawingContext() { // Nothing to do here } #endregion Constructors #region Public Methods ////// Draw Text at the location specified. /// /// The FormattedText to draw. /// The location at which to draw the text. ////// This call is illegal if this object has already been closed or disposed. /// public void DrawText(FormattedText formattedText, Point origin) { if (EventTrace.IsEnabled(EventTrace.Flags.performance, EventTrace.Level.verbose)) { EventTrace.EventProvider.TraceEvent(EventTrace.GuidFromId(EventTraceGuidId.GENERICSTRINGGUID), EventType.StartEvent, "DrawingContext.DrawText Start"); } VerifyApiNonstructuralChange(); #if DEBUG MediaTrace.DrawingContextOp.Trace("DrawText(const)"); #endif if (formattedText == null) { return; } formattedText.Draw(this, origin); if (EventTrace.IsEnabled(EventTrace.Flags.performance, EventTrace.Level.verbose)) { EventTrace.EventProvider.TraceEvent(EventTrace.GuidFromId(EventTraceGuidId.GENERICSTRINGGUID), EventType.EndEvent, "DrawingContext.DrawText End"); } } ////// 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 abstract void Close(); ////// 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. /// void IDisposable.Dispose() { // Call a virtual method for derived Dispose implementations // // Attempting to override a explicit interface member implementation causes // the most-derived implementation to always be called, and the base // implementation becomes uncallable. But FxCop requires the base Dispose // method is always be called. To avoid this situation, we use the *Core // pattern for derived classes, instead of attempting to override // IDisposable.Dispose. VerifyAccess(); DisposeCore(); } #endregion Public Methods #region Protected Methods ////// Dispose functionality implemented by subclasses /// ////// This call is illegal if this object has already been closed or disposed. /// protected abstract void DisposeCore(); ////// This verifies that the API can be called for read only access. /// protected virtual void VerifyApiNonstructuralChange() { this.VerifyAccess(); } #endregion Protected Methods } } // 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: DrawingContext.cs // // History: // GSchneid: 04/19/2003 // Created it based on the RetainedDrawingContext used in the AvPhat branch. // adsmith: 07/02/2003 // Turned this class into an abstract base class for RetainedDrawingContext // and PaintingDrawingContext. // //----------------------------------------------------------------------------- using System; using System.Security.Permissions; using System.Windows; using System.Windows.Threading; using System.Windows.Media.Animation; using System.Windows.Media; using System.Diagnostics; using MS.Internal; using System.Runtime.InteropServices; using MS.Utility; namespace System.Windows.Media { ////// Drawing context. /// public abstract partial class DrawingContext : DispatcherObject, IDisposable { #region Constructors ////// Default constructor for DrawingContext - this uses the current Dispatcher. /// internal DrawingContext() { // Nothing to do here } #endregion Constructors #region Public Methods ////// Draw Text at the location specified. /// /// The FormattedText to draw. /// The location at which to draw the text. ////// This call is illegal if this object has already been closed or disposed. /// public void DrawText(FormattedText formattedText, Point origin) { if (EventTrace.IsEnabled(EventTrace.Flags.performance, EventTrace.Level.verbose)) { EventTrace.EventProvider.TraceEvent(EventTrace.GuidFromId(EventTraceGuidId.GENERICSTRINGGUID), EventType.StartEvent, "DrawingContext.DrawText Start"); } VerifyApiNonstructuralChange(); #if DEBUG MediaTrace.DrawingContextOp.Trace("DrawText(const)"); #endif if (formattedText == null) { return; } formattedText.Draw(this, origin); if (EventTrace.IsEnabled(EventTrace.Flags.performance, EventTrace.Level.verbose)) { EventTrace.EventProvider.TraceEvent(EventTrace.GuidFromId(EventTraceGuidId.GENERICSTRINGGUID), EventType.EndEvent, "DrawingContext.DrawText End"); } } ////// 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 abstract void Close(); ////// 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. /// void IDisposable.Dispose() { // Call a virtual method for derived Dispose implementations // // Attempting to override a explicit interface member implementation causes // the most-derived implementation to always be called, and the base // implementation becomes uncallable. But FxCop requires the base Dispose // method is always be called. To avoid this situation, we use the *Core // pattern for derived classes, instead of attempting to override // IDisposable.Dispose. VerifyAccess(); DisposeCore(); } #endregion Public Methods #region Protected Methods ////// Dispose functionality implemented by subclasses /// ////// This call is illegal if this object has already been closed or disposed. /// protected abstract void DisposeCore(); ////// This verifies that the API can be called for read only access. /// protected virtual void VerifyApiNonstructuralChange() { this.VerifyAccess(); } #endregion Protected Methods } } // 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
- TTSVoice.cs
- OracleSqlParser.cs
- InvokeDelegate.cs
- SafeLibraryHandle.cs
- CodeSnippetExpression.cs
- CompositionTarget.cs
- CompilerInfo.cs
- SectionUpdates.cs
- ActivitiesCollection.cs
- QilTargetType.cs
- AnnotationObservableCollection.cs
- HelpPage.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- ToolZone.cs
- controlskin.cs
- WpfPayload.cs
- AuthenticationService.cs
- GridProviderWrapper.cs
- IgnoreSection.cs
- Cursors.cs
- XmlSchemaElement.cs
- Literal.cs
- StateRuntime.cs
- UnsafeMethods.cs
- XsdBuildProvider.cs
- SQLBinaryStorage.cs
- DictionaryBase.cs
- Label.cs
- UTF8Encoding.cs
- Native.cs
- dbdatarecord.cs
- CheckBoxStandardAdapter.cs
- LoggedException.cs
- ImageIndexConverter.cs
- TableAutomationPeer.cs
- ColorTransformHelper.cs
- JavaScriptSerializer.cs
- Variable.cs
- EventRecord.cs
- ExtensionDataObject.cs
- DataGridViewCellLinkedList.cs
- ClientScriptItemCollection.cs
- Filter.cs
- EventBuilder.cs
- CodeCastExpression.cs
- DynamicRendererThreadManager.cs
- StateBag.cs
- QueryHandler.cs
- RepeaterCommandEventArgs.cs
- DesignerAttribute.cs
- VarRefManager.cs
- TextRangeEditTables.cs
- HttpApplication.cs
- DataGridViewCellCancelEventArgs.cs
- AsymmetricSignatureDeformatter.cs
- SqlCharStream.cs
- dbdatarecord.cs
- BinaryUtilClasses.cs
- ConfigurationStrings.cs
- TextBoxAutomationPeer.cs
- FixedTextSelectionProcessor.cs
- HtmlUtf8RawTextWriter.cs
- IOException.cs
- ViewPort3D.cs
- HttpStreamMessage.cs
- HttpListenerPrefixCollection.cs
- DeferredElementTreeState.cs
- SystemColors.cs
- FontUnit.cs
- MarginCollapsingState.cs
- JpegBitmapEncoder.cs
- LoadedOrUnloadedOperation.cs
- LookupNode.cs
- SafeReversePInvokeHandle.cs
- LinqToSqlWrapper.cs
- XPathParser.cs
- Utility.cs
- UniqueIdentifierService.cs
- ProcessModule.cs
- DBSchemaTable.cs
- Attachment.cs
- FreezableDefaultValueFactory.cs
- InputGestureCollection.cs
- CheckBox.cs
- TouchFrameEventArgs.cs
- TextUtf8RawTextWriter.cs
- metadatamappinghashervisitor.cs
- Operand.cs
- DNS.cs
- Root.cs
- oledbmetadatacolumnnames.cs
- TemplateContent.cs
- BrowserCapabilitiesCodeGenerator.cs
- CompoundFileStreamReference.cs
- SigningDialog.cs
- SendMailErrorEventArgs.cs
- PageSetupDialog.cs
- ToolStripContainer.cs
- Transform3D.cs
- QilStrConcatenator.cs