What I would like to do is get an integer index of a TextPointer, as if the flowDocument was just a normal string. So basically I want to replicate the indexOf method of String, but for a flowDocument instead.
I currently have this partially working solution:

private int GetIntFromPointer(TextPointer mark, FlowDocument document)
            int count=0;
            TextPointer startPointer = document.ContentStart;
            while(startPointer.CompareTo(mark) < 0)
                if(startPointer.GetPointerContext(LogicalDirection.Forward) == TextPointerContext.Text)
                startPointer = startPointer.GetNextInsertionPosition(LogicalDirection.Forward);
                    return count;
            return count;

Unfortunately, the resulting index returned by GetIntFromPointer seems to be inaccurate as it attempts to determine the index of TextPointers which are far in the flowDocument. And I don't know why that is the case. I am checking the pointerContext to be sure I am only incrementing when I am looking at text, but I guess there is something I don't understand. Are escape character's being counted?
Otherwise, this method is used in conjunction with a method which accepts an integer index and returns a TextPointer and I am quite confident that method is reliable.

Any ideas as to what I am doing wrong in this method?

7 Years
Discussion Span
Last Post by abelLazm
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.