Code:
/ 4.0 / 4.0 / 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.
//------------------------------------------------------------------------------
// 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
- RuntimeConfig.cs
- CharacterString.cs
- DataGridViewComboBoxColumn.cs
- ProfilePropertySettings.cs
- unsafenativemethodstextservices.cs
- MobileControlsSectionHelper.cs
- Trace.cs
- URLString.cs
- DrawListViewSubItemEventArgs.cs
- controlskin.cs
- HtmlInputSubmit.cs
- CroppedBitmap.cs
- DashStyle.cs
- AbstractExpressions.cs
- EntityUtil.cs
- CodeTypeReference.cs
- JsonEncodingStreamWrapper.cs
- commandenforcer.cs
- ValidationPropertyAttribute.cs
- TemplateControlParser.cs
- DesignerCategoryAttribute.cs
- CodeNamespaceImport.cs
- BaseHashHelper.cs
- WSIdentityFaultException.cs
- DbParameterHelper.cs
- DataGridColumnCollection.cs
- Constants.cs
- XmlILAnnotation.cs
- StylusPlugInCollection.cs
- securitycriticaldataClass.cs
- DocComment.cs
- QueryAsyncResult.cs
- RegistrationServices.cs
- XmlSerializerVersionAttribute.cs
- AttributeCollection.cs
- CacheDependency.cs
- AssociationSet.cs
- SqlCommandSet.cs
- PingReply.cs
- XmlSchemaCollection.cs
- RectConverter.cs
- FactoryRecord.cs
- AttributeQuery.cs
- VarInfo.cs
- ProfileManager.cs
- ToolStripDropDownItemDesigner.cs
- XmlQuerySequence.cs
- HitTestWithPointDrawingContextWalker.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- ConnectorRouter.cs
- ImpersonateTokenRef.cs
- WebPartConnectionsEventArgs.cs
- SrgsRuleRef.cs
- Int16Converter.cs
- TextTreeRootNode.cs
- ProgressBarHighlightConverter.cs
- _RequestCacheProtocol.cs
- QueueAccessMode.cs
- ConfigurationManagerHelper.cs
- Stack.cs
- HorizontalAlignConverter.cs
- ZipFileInfo.cs
- PersistenceTypeAttribute.cs
- PointAnimationClockResource.cs
- ComContractElementCollection.cs
- PrivilegedConfigurationManager.cs
- RankException.cs
- CompilationPass2TaskInternal.cs
- DictionaryBase.cs
- TagNameToTypeMapper.cs
- XmlDocumentFragment.cs
- HttpFileCollection.cs
- CasesDictionary.cs
- IdentityManager.cs
- TextFindEngine.cs
- documentsequencetextview.cs
- UpdateTranslator.cs
- ListMarkerLine.cs
- DataError.cs
- InternalsVisibleToAttribute.cs
- Model3D.cs
- QEncodedStream.cs
- InputReferenceExpression.cs
- xsdvalidator.cs
- HasCopySemanticsAttribute.cs
- InputElement.cs
- XmlSortKey.cs
- CapabilitiesSection.cs
- TaskFactory.cs
- ToolStripItemTextRenderEventArgs.cs
- EntityProxyFactory.cs
- XmlSchemaSimpleTypeRestriction.cs
- FormsAuthenticationTicket.cs
- storepermission.cs
- Style.cs
- RtfFormatStack.cs
- TreeNode.cs
- EastAsianLunisolarCalendar.cs
- ExceptQueryOperator.cs
- PreProcessor.cs