Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- BamlLocalizabilityResolver.cs
- XamlSerializerUtil.cs
- EntityDataSourceUtil.cs
- EntityRecordInfo.cs
- WebPartEditVerb.cs
- DragDropHelper.cs
- TickBar.cs
- TripleDESCryptoServiceProvider.cs
- UndirectedGraph.cs
- x509utils.cs
- Win32KeyboardDevice.cs
- SafeLocalMemHandle.cs
- Utils.cs
- XamlInt32CollectionSerializer.cs
- CapabilitiesState.cs
- MachineSettingsSection.cs
- DataPagerCommandEventArgs.cs
- SQLGuid.cs
- EntityDataSourceStatementEditorForm.cs
- PartialToken.cs
- DesigntimeLicenseContextSerializer.cs
- DbgCompiler.cs
- AdornerHitTestResult.cs
- DispatcherFrame.cs
- TableRow.cs
- SqlUDTStorage.cs
- Error.cs
- TreeNodeSelectionProcessor.cs
- Button.cs
- ObjectStateManager.cs
- Rect.cs
- XmlIncludeAttribute.cs
- TextMessageEncoder.cs
- keycontainerpermission.cs
- XmlSubtreeReader.cs
- QuotedPrintableStream.cs
- DataGridLinkButton.cs
- PrePrepareMethodAttribute.cs
- TemplateKeyConverter.cs
- HttpResponse.cs
- MutexSecurity.cs
- HandleRef.cs
- ConstraintCollection.cs
- CompressEmulationStream.cs
- Visual3D.cs
- SspiHelper.cs
- ContextMenuStripActionList.cs
- WebConfigurationHostFileChange.cs
- LinkedResourceCollection.cs
- TextDecorationCollection.cs
- HttpModuleAction.cs
- FixedTextContainer.cs
- StringHandle.cs
- ListViewHitTestInfo.cs
- QuaternionAnimation.cs
- EntityParameter.cs
- DataGridViewCellStyleConverter.cs
- Identity.cs
- ExeContext.cs
- CmsInterop.cs
- SettingsBindableAttribute.cs
- ListItemParagraph.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- AxHost.cs
- DeferredTextReference.cs
- OracleConnectionStringBuilder.cs
- GrammarBuilderDictation.cs
- DeferrableContentConverter.cs
- BooleanConverter.cs
- ViewManager.cs
- ExistsInCollection.cs
- SHA256Cng.cs
- DependencyPropertyKind.cs
- XmlAnyAttributeAttribute.cs
- StatusBarPanel.cs
- AnimationClock.cs
- ArrayTypeMismatchException.cs
- Converter.cs
- ZipIOCentralDirectoryFileHeader.cs
- AssociationTypeEmitter.cs
- TagMapCollection.cs
- MsmqIntegrationReceiveParameters.cs
- StorageInfo.cs
- ContentControl.cs
- WebBrowserEvent.cs
- ReflectEventDescriptor.cs
- coordinatorfactory.cs
- HelloMessageCD1.cs
- ByeMessage11.cs
- autovalidator.cs
- TimeManager.cs
- TraceListeners.cs
- QuadraticEase.cs
- LongSumAggregationOperator.cs
- FormViewRow.cs
- activationcontext.cs
- ItemsChangedEventArgs.cs
- DelayLoadType.cs
- StatusBarDrawItemEvent.cs
- DataRow.cs