Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Documents / TextSegment.cs / 1 / TextSegment.cs
//---------------------------------------------------------------------------- // // File: TextSegment.cs // // Copyright (C) Microsoft Corporation. All rights reserved. // // Description: A pair of TextPositions used to denote a run of TextContainer content. // //--------------------------------------------------------------------------- namespace System.Windows.Documents { using MS.Internal; using System.Collections; ////// A pair of TextPositions used to denote a run of TextContainer content. /// // internal struct TextSegment { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Constructor. /// /// /// Position preceeding the TextSegment's content. /// /// /// Position following the TextSegment's content. /// ////// If startPosition or endPosition are TextNavigators (derived from /// TextPointer), the TextSegment constructor will store new TextPointer /// instances internally. The values returned by the Start and End /// properties are always immutable TextPositions. /// internal TextSegment(ITextPointer startPosition, ITextPointer endPosition) : this(startPosition, endPosition, false) { } ////// Constructor. /// /// /// Position preceeding the TextSegment's content. /// /// /// Position following the TextSegment's content. /// /// /// Whether preserves LogicalDirection of start and end positions. /// internal TextSegment(ITextPointer startPosition, ITextPointer endPosition, bool preserveLogicalDirection) { ValidationHelper.VerifyPositionPair(startPosition, endPosition); if (startPosition.CompareTo(endPosition) == 0) { // To preserve segment emptiness // we use the same instance of a pointer // for both segment ends. _start = startPosition.GetFrozenPointer(startPosition.LogicalDirection); _end = _start; } else { Invariant.Assert(startPosition.CompareTo(endPosition) < 0); _start = startPosition.GetFrozenPointer(preserveLogicalDirection ? startPosition.LogicalDirection : LogicalDirection.Backward); _end = endPosition.GetFrozenPointer(preserveLogicalDirection ? endPosition.LogicalDirection : LogicalDirection.Forward); } } #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// returns true if the segment contains a given position /// // internal bool Contains(ITextPointer position) { return (!this.IsNull && this._start.CompareTo(position) <= 0 && position.CompareTo(this._end) <= 0); } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties ////// Position preceeding the TextSegment's content. /// internal ITextPointer Start { get { return _start; } } ////// Position following the TextSegment's content. /// internal ITextPointer End { get { return _end; } } internal bool IsNull { get { return _start == null || _end == null; } } #endregion Internal Properties ////// The "TextSegment.Null" value. /// ////// TextSegtemt.Null is used in contexts where text segment is missing. /// internal static readonly TextSegment Null = new TextSegment(); //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields // Position preceeding the TextSegment's content. private readonly ITextPointer _start; // Position following the TextSegment's content. private readonly ITextPointer _end; #endregion Private Fields } } // 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
- TextTreeTextNode.cs
- SqlDuplicator.cs
- XhtmlBasicCommandAdapter.cs
- OrthographicCamera.cs
- TransformedBitmap.cs
- MatrixAnimationBase.cs
- Stack.cs
- _NetRes.cs
- CompiledQueryCacheEntry.cs
- PolicyManager.cs
- ShapeTypeface.cs
- SafeCryptContextHandle.cs
- StoreContentChangedEventArgs.cs
- EmptyEnumerator.cs
- PeerApplicationLaunchInfo.cs
- TrustManagerPromptUI.cs
- KnownBoxes.cs
- Color.cs
- RectangleHotSpot.cs
- GridViewRowCollection.cs
- GridViewRowEventArgs.cs
- XmlExtensionFunction.cs
- SerializerWriterEventHandlers.cs
- WebScriptMetadataMessageEncoderFactory.cs
- QilChoice.cs
- ProcessHostConfigUtils.cs
- FontStyle.cs
- ExtendedPropertyDescriptor.cs
- AlternateView.cs
- Baml6Assembly.cs
- ListViewDataItem.cs
- TransformFinalBlockRequest.cs
- DataControlPagerLinkButton.cs
- TableLayoutStyleCollection.cs
- XpsPackagingPolicy.cs
- HostProtectionException.cs
- LinqDataSourceView.cs
- BufferedReadStream.cs
- DeferredSelectedIndexReference.cs
- PropertyEmitterBase.cs
- ComponentSerializationService.cs
- ProtectedConfiguration.cs
- QueryContext.cs
- FormattedText.cs
- IntSecurity.cs
- WorkflowEventArgs.cs
- File.cs
- ReturnEventArgs.cs
- DataServiceBuildProvider.cs
- _CookieModule.cs
- ComboBox.cs
- DBSqlParserTable.cs
- XmlElementAttributes.cs
- WindowsListViewGroup.cs
- AstTree.cs
- BevelBitmapEffect.cs
- PagedDataSource.cs
- HtmlFormAdapter.cs
- DataKey.cs
- LiteralControl.cs
- SByteConverter.cs
- ContentPresenter.cs
- WindowsClaimSet.cs
- handlecollector.cs
- IdentityNotMappedException.cs
- WebPartHelpVerb.cs
- Missing.cs
- TypeGeneratedEventArgs.cs
- HMACRIPEMD160.cs
- HatchBrush.cs
- DateTimeUtil.cs
- NotifyParentPropertyAttribute.cs
- UiaCoreApi.cs
- PageVisual.cs
- MobileFormsAuthentication.cs
- FileUpload.cs
- DoubleCollection.cs
- PersistStreamTypeWrapper.cs
- Hex.cs
- CharStorage.cs
- Clause.cs
- ViewManager.cs
- Message.cs
- ProxyWebPartManager.cs
- OleDbMetaDataFactory.cs
- NamespaceList.cs
- ComponentConverter.cs
- RelationshipType.cs
- TreeNodeStyle.cs
- CustomExpression.cs
- ArcSegment.cs
- Vector3DCollectionConverter.cs
- ScriptingSectionGroup.cs
- CheckBoxList.cs
- CmsUtils.cs
- IsolatedStorageException.cs
- ToolboxItemFilterAttribute.cs
- RegisteredArrayDeclaration.cs
- DataFieldConverter.cs
- PassportAuthenticationEventArgs.cs