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
- RemoteWebConfigurationHostStream.cs
- AncillaryOps.cs
- QilValidationVisitor.cs
- SmiMetaDataProperty.cs
- QualificationDataAttribute.cs
- MenuItem.cs
- TemplateBindingExpression.cs
- CatalogPart.cs
- DbModificationCommandTree.cs
- AssemblyHash.cs
- TimeSpan.cs
- GenericUriParser.cs
- DataPagerField.cs
- Clock.cs
- SoapCodeExporter.cs
- SqlConnectionStringBuilder.cs
- HtmlInputSubmit.cs
- EmissiveMaterial.cs
- ResXResourceSet.cs
- _SSPISessionCache.cs
- ResourceContainer.cs
- XslAstAnalyzer.cs
- ImageList.cs
- DynamicArgumentDesigner.xaml.cs
- CustomWebEventKey.cs
- ConstraintEnumerator.cs
- OutputScopeManager.cs
- MetadataArtifactLoaderCompositeResource.cs
- HtmlMeta.cs
- RotationValidation.cs
- PartialCachingControl.cs
- BezierSegment.cs
- ValidationSummary.cs
- DefaultEventAttribute.cs
- TabPanel.cs
- OdbcInfoMessageEvent.cs
- DbConnectionPoolGroup.cs
- WebPartDisplayMode.cs
- TreeView.cs
- RSAOAEPKeyExchangeDeformatter.cs
- TerminatorSinks.cs
- Int32Animation.cs
- Int16AnimationUsingKeyFrames.cs
- WmlSelectionListAdapter.cs
- SyndicationElementExtensionCollection.cs
- SqlTriggerAttribute.cs
- ConstraintCollection.cs
- ScriptServiceAttribute.cs
- SqlRemoveConstantOrderBy.cs
- LogStore.cs
- WsiProfilesElement.cs
- DataMember.cs
- ExclusiveTcpListener.cs
- ConversionHelper.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- DisableDpiAwarenessAttribute.cs
- WebZoneDesigner.cs
- ScriptManagerProxy.cs
- ResourceManager.cs
- smtpconnection.cs
- Pair.cs
- Int32Animation.cs
- FixUpCollection.cs
- TCPClient.cs
- XslAst.cs
- WebPartManagerInternals.cs
- BooleanStorage.cs
- SqlTypeSystemProvider.cs
- UnsettableComboBox.cs
- UnsafeNativeMethods.cs
- BasicCellRelation.cs
- Marshal.cs
- NavigationExpr.cs
- ClientConfigurationSystem.cs
- ConfigurationStrings.cs
- ImageAnimator.cs
- MemoryMappedView.cs
- TrustManagerMoreInformation.cs
- EndpointDiscoveryMetadataCD1.cs
- ValueOfAction.cs
- FrameworkTextComposition.cs
- ListViewHitTestInfo.cs
- RunWorkerCompletedEventArgs.cs
- UserValidatedEventArgs.cs
- Schema.cs
- AttributeCollection.cs
- DropShadowBitmapEffect.cs
- XamlSerializerUtil.cs
- WebUtil.cs
- NativeMethods.cs
- TouchFrameEventArgs.cs
- SectionInformation.cs
- SqlCacheDependencyDatabaseCollection.cs
- ButtonChrome.cs
- ValidatorUtils.cs
- X509SecurityTokenAuthenticator.cs
- _Rfc2616CacheValidators.cs
- XmlDocument.cs
- Membership.cs
- BitConverter.cs