Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / DrawingContext.cs / 1305600 / DrawingContext.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2003 // // File: DrawingContext.cs // // History: // [....]: 04/19/2003 // Created it based on the RetainedDrawingContext used in the AvPhat branch. // [....]: 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) { EventTrace.EasyTraceEvent(EventTrace.Keyword.KeywordGeneral, EventTrace.Level.Verbose, EventTrace.Event.WClientStringBegin, "DrawingContext.DrawText Start"); VerifyApiNonstructuralChange(); #if DEBUG MediaTrace.DrawingContextOp.Trace("DrawText(const)"); #endif if (formattedText == null) { return; } formattedText.Draw(this, origin); EventTrace.EasyTraceEvent(EventTrace.Keyword.KeywordGeneral, EventTrace.Level.Verbose, EventTrace.Event.WClientStringEnd, "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(); GC.SuppressFinalize(this); } #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
- StylusPoint.cs
- EventProviderWriter.cs
- ObjectSpanRewriter.cs
- WebSysDescriptionAttribute.cs
- DataRelationPropertyDescriptor.cs
- MarkupCompilePass1.cs
- DataSetFieldSchema.cs
- PerfService.cs
- TextEditorDragDrop.cs
- CatalogZone.cs
- AggregateNode.cs
- HttpCookie.cs
- LogEntryUtils.cs
- WindowsSolidBrush.cs
- SQLMembershipProvider.cs
- QuaternionRotation3D.cs
- ComplexTypeEmitter.cs
- EventlogProvider.cs
- DocumentEventArgs.cs
- FlowDocumentFormatter.cs
- EditableTreeList.cs
- RegularExpressionValidator.cs
- ResXResourceReader.cs
- XmlSchemaCollection.cs
- ContentElementAutomationPeer.cs
- Bits.cs
- TableItemStyle.cs
- PartitionResolver.cs
- ContextStaticAttribute.cs
- Variable.cs
- Ray3DHitTestResult.cs
- DataGridCellsPanel.cs
- LineSegment.cs
- PropertyChangedEventArgs.cs
- EventHandlingScope.cs
- DataGridViewControlCollection.cs
- Attributes.cs
- RelationalExpressions.cs
- ObjectCloneHelper.cs
- StructuredTypeEmitter.cs
- SafeFileMappingHandle.cs
- XmlLanguage.cs
- ThreadStaticAttribute.cs
- ProxyWebPartConnectionCollection.cs
- HttpCapabilitiesEvaluator.cs
- MimeObjectFactory.cs
- ParameterBuilder.cs
- CachedFontFamily.cs
- SqlServer2KCompatibilityAnnotation.cs
- RuleRefElement.cs
- Utils.cs
- TableRowGroup.cs
- RightNameExpirationInfoPair.cs
- RequestCachingSection.cs
- TimestampInformation.cs
- documentsequencetextview.cs
- DateTimeParse.cs
- SHA512.cs
- BitmapEffectInputConnector.cs
- TableCellCollection.cs
- WindowsFormsHostPropertyMap.cs
- GenericTextProperties.cs
- WizardStepBase.cs
- PeerNameRegistration.cs
- EventLogEntry.cs
- AssertHelper.cs
- XmlSchemaObjectCollection.cs
- SQLUtility.cs
- ButtonBaseAutomationPeer.cs
- MinimizableAttributeTypeConverter.cs
- Socket.cs
- CryptoKeySecurity.cs
- ConfigXmlAttribute.cs
- SurrogateEncoder.cs
- Keywords.cs
- InternalsVisibleToAttribute.cs
- SymbolMethod.cs
- localization.cs
- HotSpot.cs
- AuthorizationRuleCollection.cs
- CFGGrammar.cs
- FirstMatchCodeGroup.cs
- httpapplicationstate.cs
- Clause.cs
- CallTemplateAction.cs
- TextLineBreak.cs
- WebException.cs
- DiscoveryInnerClientManaged11.cs
- Html32TextWriter.cs
- XmlSchemaInferenceException.cs
- XPathCompileException.cs
- ListViewItem.cs
- ConfigsHelper.cs
- RulePatternOps.cs
- BuildManager.cs
- UInt64Storage.cs
- SessionStateUtil.cs
- TargetPerspective.cs
- ScriptResourceDefinition.cs
- Types.cs