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
- ObjectSpanRewriter.cs
- UIntPtr.cs
- OleDbParameter.cs
- TextEffect.cs
- SapiRecoInterop.cs
- ToolboxSnapDragDropEventArgs.cs
- QilXmlReader.cs
- MembershipAdapter.cs
- Encoder.cs
- AuthenticationSection.cs
- PropertyCondition.cs
- SqlInternalConnectionTds.cs
- ExtendedProtectionPolicy.cs
- JsonReaderDelegator.cs
- WindowAutomationPeer.cs
- NegotiateStream.cs
- CryptoApi.cs
- UIElement3DAutomationPeer.cs
- ModifiableIteratorCollection.cs
- IpcManager.cs
- Paragraph.cs
- XamlPoint3DCollectionSerializer.cs
- SortedList.cs
- FontCacheUtil.cs
- InternalCompensate.cs
- MLangCodePageEncoding.cs
- _Semaphore.cs
- SettingsProperty.cs
- SchemaExporter.cs
- MetadataHelper.cs
- UrlUtility.cs
- WindowsBrush.cs
- Update.cs
- BasicHttpMessageCredentialType.cs
- SplayTreeNode.cs
- WhitespaceSignificantCollectionAttribute.cs
- FormsAuthentication.cs
- BridgeDataReader.cs
- XDeferredAxisSource.cs
- FileLogRecordStream.cs
- EventBuilder.cs
- ExpressionVisitorHelpers.cs
- SQLSingle.cs
- InheritanceAttribute.cs
- Wildcard.cs
- SchemaAttDef.cs
- ReadOnlyObservableCollection.cs
- PersonalizationAdministration.cs
- FlowLayoutPanel.cs
- DebugView.cs
- MarshalByRefObject.cs
- CounterSampleCalculator.cs
- LambdaCompiler.Binary.cs
- DebugInfoExpression.cs
- ToolStripContainer.cs
- SchemaDeclBase.cs
- SqlHelper.cs
- PEFileEvidenceFactory.cs
- StaticSiteMapProvider.cs
- CacheRequest.cs
- Vector3D.cs
- xmlglyphRunInfo.cs
- HttpResponseInternalBase.cs
- PartManifestEntry.cs
- HtmlPageAdapter.cs
- WaitingCursor.cs
- DefaultObjectMappingItemCollection.cs
- EntityDataSourceDataSelectionPanel.cs
- RangeExpression.cs
- TextProviderWrapper.cs
- unsafenativemethodstextservices.cs
- DeviceContext.cs
- DynamicRenderer.cs
- NetSectionGroup.cs
- DefaultClaimSet.cs
- ClipboardProcessor.cs
- TextOutput.cs
- SqlTopReducer.cs
- PhysicalFontFamily.cs
- BindingList.cs
- XpsSerializerWriter.cs
- PopupEventArgs.cs
- SiteMapNodeItemEventArgs.cs
- PropertyTabChangedEvent.cs
- ListenerAdapterBase.cs
- PermissionAttributes.cs
- ZipIOFileItemStream.cs
- ProcessInfo.cs
- ArrayEditor.cs
- TextAnchor.cs
- CompilerGeneratedAttribute.cs
- ReachObjectContext.cs
- FrameworkContentElementAutomationPeer.cs
- CodeGenerator.cs
- SystemParameters.cs
- BindingMemberInfo.cs
- XamlSerializer.cs
- UInt16.cs
- isolationinterop.cs
- SmtpNtlmAuthenticationModule.cs