Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / PtsHost / ListMarkerLine.cs / 1305600 / ListMarkerLine.cs
//----------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// File: LineBase.cs
//
// Description: Text line formatter.
//
// History:
// 02/07/2005 : ghermann - Split from Line.cs
//
//---------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Collections;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Media.TextFormatting;
using MS.Internal.Text;
using MS.Internal.Documents;
using MS.Internal.PtsHost.UnsafeNativeMethods;
namespace MS.Internal.PtsHost
{
internal class ListMarkerLine : LineBase
{
///
/// Constructor
///
///
/// TextFormatter host
///
///
/// Owner of the ListMarker
///
internal ListMarkerLine(TextFormatterHost host, ListParaClient paraClient) : base(paraClient)
{
_host = host;
}
// -----------------------------------------------------------------
//
// TextSource Implementation
//
// -----------------------------------------------------------------
#region TextSource Implementation
///
/// Return the text run at specified text source position.
///
///
/// Offset of specified position
///
internal override TextRun GetTextRun(int dcp)
{
return new ParagraphBreakRun(1, PTS.FSFLRES.fsflrEndOfParagraph);
}
///
/// Return the text, as CharacterBufferRange, immediately before specified text source position.
///
///
/// Offset of specified position
///
internal override TextSpan GetPrecedingText(int dcp)
{
return new TextSpan(
0,
new CultureSpecificCharacterBufferRange(null, CharacterBufferRange.Empty)
);
}
///
/// Get Text effect index from specified position
///
///
/// Offset of specified position
///
///
internal override int GetTextEffectCharacterIndexFromTextSourceCharacterIndex(int dcp)
{
return dcp;
}
#endregion TextSource Implementation
///
/// Create and format text line.
///
///
/// DrawingContext for text line.
///
///
/// LineProperties of text line
///
///
/// Horizontal draw location
///
///
/// Vertical baseline draw location
///
internal void FormatAndDrawVisual(DrawingContext ctx, LineProperties lineProps, int ur, int vrBaseline)
{
System.Windows.Media.TextFormatting.TextLine line;
bool mirror = (lineProps.FlowDirection == FlowDirection.RightToLeft);
_host.Context = this;
try
{
// Create line object
line = _host.TextFormatter.FormatLine(_host, 0, 0, lineProps.FirstLineProps, null, new TextRunCache());
Point drawLocation = new Point(TextDpi.FromTextDpi(ur), TextDpi.FromTextDpi(vrBaseline) - line.Baseline);
line.Draw(ctx, drawLocation, (mirror ? InvertAxes.Horizontal : InvertAxes.None));
line.Dispose();
}
finally
{
// clear the context
_host.Context = null;
}
}
///
/// Text formatter host
///
private readonly TextFormatterHost _host;
}
}
// 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
- UIElementParagraph.cs
- XNodeNavigator.cs
- XmlSignificantWhitespace.cs
- LogAppendAsyncResult.cs
- TextSelectionHelper.cs
- SymmetricAlgorithm.cs
- VectorCollectionConverter.cs
- WebPageTraceListener.cs
- XmlResolver.cs
- EnumerableRowCollectionExtensions.cs
- InvalidFilterCriteriaException.cs
- SecurityElement.cs
- DependentList.cs
- HttpCookie.cs
- HttpCookiesSection.cs
- ZipIOLocalFileBlock.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- ObjectStateEntry.cs
- CompositeActivityDesigner.cs
- PropertyEmitter.cs
- ChildrenQuery.cs
- MemberDescriptor.cs
- ProcessHost.cs
- Polyline.cs
- CodeTypeDeclaration.cs
- PaintEvent.cs
- CacheHelper.cs
- SendMessageContent.cs
- StorageAssociationSetMapping.cs
- PrtCap_Public_Simple.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- JoinCqlBlock.cs
- SafeArrayRankMismatchException.cs
- VSWCFServiceContractGenerator.cs
- HtmlFormParameterReader.cs
- TextParagraphProperties.cs
- StorageComplexTypeMapping.cs
- DetailsViewUpdateEventArgs.cs
- WCFServiceClientProxyGenerator.cs
- DataListItemEventArgs.cs
- BamlLocalizabilityResolver.cs
- AnnouncementEndpointElement.cs
- AccessibleObject.cs
- SizeConverter.cs
- ExpressionBindingCollection.cs
- CollectionBuilder.cs
- LongMinMaxAggregationOperator.cs
- HtmlCommandAdapter.cs
- XmlSerializerFactory.cs
- SamlAudienceRestrictionCondition.cs
- TextElementEditingBehaviorAttribute.cs
- Serializer.cs
- PolygonHotSpot.cs
- Misc.cs
- DataBindingCollection.cs
- ConfigXmlComment.cs
- XmlDeclaration.cs
- ConfigXmlCDataSection.cs
- ComponentEditorPage.cs
- KeyedCollection.cs
- AuditLevel.cs
- ScriptManagerProxy.cs
- TextTreeUndoUnit.cs
- UndoManager.cs
- DebugView.cs
- TextBounds.cs
- ValueUnavailableException.cs
- StorageMappingFragment.cs
- XmlDataImplementation.cs
- ConfigXmlComment.cs
- StackSpiller.Bindings.cs
- WindowsFormsHostAutomationPeer.cs
- LambdaSerializationException.cs
- HelpEvent.cs
- MessageSecurityOverHttpElement.cs
- PrintingPermissionAttribute.cs
- AvtEvent.cs
- KeyedQueue.cs
- EventListenerClientSide.cs
- ToolBarPanel.cs
- VectorValueSerializer.cs
- ConnectionPoint.cs
- TypeUtil.cs
- shaperfactory.cs
- ColumnReorderedEventArgs.cs
- PackWebRequest.cs
- UshortList2.cs
- RTLAwareMessageBox.cs
- NativeWindow.cs
- ExpressionBindingCollection.cs
- InputScopeConverter.cs
- ActivityBuilder.cs
- CompilationUnit.cs
- XmlDownloadManager.cs
- XmlCharType.cs
- StylusPointProperties.cs
- DefaultParameterValueAttribute.cs
- ListParaClient.cs
- OleDbRowUpdatedEvent.cs
- XmlDocumentViewSchema.cs