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
- AssemblyBuilder.cs
- IPGlobalProperties.cs
- TextAction.cs
- SymmetricCryptoHandle.cs
- OleDbPropertySetGuid.cs
- ClientSession.cs
- cryptoapiTransform.cs
- UpdatePanelControlTrigger.cs
- Wizard.cs
- IsolatedStorageSecurityState.cs
- Contracts.cs
- WindowsListViewGroupHelper.cs
- SynchronizationLockException.cs
- SerializationException.cs
- Size3DConverter.cs
- GetWinFXPath.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- webclient.cs
- XmlSchemaExporter.cs
- PresentationUIStyleResources.cs
- ClientRolePrincipal.cs
- TemplateModeChangedEventArgs.cs
- ReadOnlyAttribute.cs
- DataServiceRequestArgs.cs
- SingleObjectCollection.cs
- UnsafeNativeMethods.cs
- Rect3DValueSerializer.cs
- RelationshipNavigation.cs
- DataTablePropertyDescriptor.cs
- MultiBindingExpression.cs
- SendMailErrorEventArgs.cs
- Context.cs
- StateRuntime.cs
- DispatcherTimer.cs
- EnumerableRowCollectionExtensions.cs
- ConnectionString.cs
- XslTransform.cs
- SortDescriptionCollection.cs
- ListViewAutomationPeer.cs
- BindingManagerDataErrorEventArgs.cs
- CatalogPartChrome.cs
- Nullable.cs
- MDIControlStrip.cs
- DocumentManager.cs
- EntityStoreSchemaGenerator.cs
- DataList.cs
- SessionStateItemCollection.cs
- PackageStore.cs
- SizeIndependentAnimationStorage.cs
- PropertyBuilder.cs
- ResXDataNode.cs
- EasingQuaternionKeyFrame.cs
- LocatorPart.cs
- SafeNativeMethods.cs
- UIElement.cs
- IItemProperties.cs
- WindowsClientElement.cs
- XmlMemberMapping.cs
- ObjectListDesigner.cs
- Sequence.cs
- SerializationSectionGroup.cs
- MULTI_QI.cs
- FigureParagraph.cs
- AuthenticationManager.cs
- AnonymousIdentificationModule.cs
- InputMethodStateChangeEventArgs.cs
- CookielessHelper.cs
- Int16Storage.cs
- XmlSchemaSimpleContentExtension.cs
- Utils.cs
- DataGridViewCellStyle.cs
- ParallelTimeline.cs
- OpCellTreeNode.cs
- RoutedEventArgs.cs
- StorageSetMapping.cs
- Calendar.cs
- OptimizerPatterns.cs
- StylusPointCollection.cs
- CancelEventArgs.cs
- HtmlShim.cs
- SimpleHandlerBuildProvider.cs
- AdministrationHelpers.cs
- FixedPosition.cs
- isolationinterop.cs
- Process.cs
- SqlXml.cs
- IteratorDescriptor.cs
- Win32MouseDevice.cs
- HashHelper.cs
- CounterSample.cs
- ReliabilityContractAttribute.cs
- SqlConnection.cs
- BitmapSourceSafeMILHandle.cs
- MissingFieldException.cs
- FrameworkContentElement.cs
- ImagingCache.cs
- ServiceContractViewControl.cs
- Converter.cs
- UpdateTracker.cs
- XsltFunctions.cs