System.Windows.Documents.TextPointer.GetPositionAtOffset C# (CSharp) Method

GetPositionAtOffset() public method

public GetPositionAtOffset ( int offset, LogicalDirection direction ) : TextPointer
offset int
direction LogicalDirection
return TextPointer
		public TextPointer GetPositionAtOffset (int offset, LogicalDirection direction)
		{
			return NativeDependencyObjectHelper.FromIntPtr (NativeMethods.text_pointer_get_position_at_offset (native, offset, direction)) as TextPointer;
		}
	}

Usage Example

示例#1
0
        TextPointer GetTextPositionAtOffset(TextPointer position, int characterCount)
        {
            while (position != null)
            {
                var context = position.GetPointerContext(LogicalDirection.Forward);
                if (context == TextPointerContext.Text)
                {
                    var count = position.GetTextRunLength(LogicalDirection.Forward);
                    if (characterCount <= count)
                    {
                        return position.GetPositionAtOffset(characterCount);
                    }

                    characterCount -= count;
                }
                else if (position.Parent is LineBreak)
                {
                    var count = 2;
                    if (characterCount <= count)
                    {
                        return position.GetPositionAtOffset(characterCount);
                    }

                    characterCount -= count;
                }
                
                var nextContextPosition = position.GetNextContextPosition(LogicalDirection.Forward);
                if (nextContextPosition == null)
                    return position;

                position = nextContextPosition;
            }

            return position;
        }
All Usage Examples Of System.Windows.Documents.TextPointer::GetPositionAtOffset