Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / PtsHost / ListMarkerLine.cs / 1 / ListMarkerLine.cs
//----------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// File: LineBase.cs
//
// Description: Text line formatter.
//
// History:
// 02/07/2005 : [....] - 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
- ZeroOpNode.cs
- UriTemplateTable.cs
- RadioButtonRenderer.cs
- Menu.cs
- MediaScriptCommandRoutedEventArgs.cs
- ApplicationDirectory.cs
- CompilerWrapper.cs
- ObjectViewListener.cs
- Subtree.cs
- CheckBoxFlatAdapter.cs
- FormatVersion.cs
- BitmapMetadataBlob.cs
- SelectionRange.cs
- DataRelation.cs
- HtmlDocument.cs
- ServiceProviders.cs
- UnsafeNativeMethods.cs
- Types.cs
- BoundPropertyEntry.cs
- NativeMethods.cs
- PackageRelationshipSelector.cs
- EntityViewContainer.cs
- UnicastIPAddressInformationCollection.cs
- FileAuthorizationModule.cs
- ListViewInsertionMark.cs
- StylusButtonCollection.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- CodeObject.cs
- ObjectQuery_EntitySqlExtensions.cs
- MenuScrollingVisibilityConverter.cs
- DataSourceControlBuilder.cs
- SafeFileMapViewHandle.cs
- StringComparer.cs
- LazyTextWriterCreator.cs
- MoveSizeWinEventHandler.cs
- Activity.cs
- _NestedMultipleAsyncResult.cs
- ReadOnlyHierarchicalDataSource.cs
- BoundsDrawingContextWalker.cs
- FontStyles.cs
- KeyToListMap.cs
- LogicalMethodInfo.cs
- TextTabProperties.cs
- WebMessageEncodingBindingElement.cs
- MatrixTransform3D.cs
- XmlSerializationWriter.cs
- ResourceSet.cs
- SyntaxCheck.cs
- TabletDeviceInfo.cs
- entityreference_tresulttype.cs
- SystemBrushes.cs
- CollectionConverter.cs
- TextDecoration.cs
- XamlPathDataSerializer.cs
- SynchronizedInputAdaptor.cs
- ConnectionStringsSection.cs
- SqlExpander.cs
- Scripts.cs
- WSFederationHttpSecurityElement.cs
- QueryContext.cs
- ColumnReorderedEventArgs.cs
- ConfigurationManager.cs
- RecognizerInfo.cs
- IgnoreFileBuildProvider.cs
- DataGridViewTextBoxColumn.cs
- DataGridItem.cs
- StreamAsIStream.cs
- TextBoxAutomationPeer.cs
- DBSchemaTable.cs
- ManagementEventWatcher.cs
- CultureSpecificCharacterBufferRange.cs
- CatalogZoneDesigner.cs
- DoubleCollectionConverter.cs
- DecoderBestFitFallback.cs
- TrackingProfileDeserializationException.cs
- PropertyDescriptor.cs
- FileDialog.cs
- SmtpLoginAuthenticationModule.cs
- followingsibling.cs
- FilteredXmlReader.cs
- TextViewDesigner.cs
- PageHandlerFactory.cs
- Timer.cs
- WebContentFormatHelper.cs
- RSAOAEPKeyExchangeDeformatter.cs
- SchemaLookupTable.cs
- HeaderCollection.cs
- ConditionValidator.cs
- SizeAnimationUsingKeyFrames.cs
- HttpGetProtocolReflector.cs
- BaseDataList.cs
- LocationSectionRecord.cs
- WebBrowserSiteBase.cs
- UmAlQuraCalendar.cs
- TextProviderWrapper.cs
- StyleBamlRecordReader.cs
- DocumentGridContextMenu.cs
- BamlReader.cs
- WsatTransactionFormatter.cs
- BitStack.cs