public void MoveNext()

in ExampleGallery/CustomTextLayouts.xaml.cs [332:368]


            public void MoveNext()
            {
                int fontRunBoundary = GetBoundary(fontRuns[fontRunIndex].Key);
                int scriptRunBoundary = GetBoundary(scriptRuns[scriptRunIndex].Key);
                int bidiRunBoundary = GetBoundary(bidiRuns[bidiRunIndex].Key);

                int soonestBoundary = characterRange.CharacterIndex + characterRange.CharacterCount;

                if (soonestBoundary == fontRunBoundary)
                {
                    fontRunIndex++;

                    if (fontRunIndex < fontRuns.Count)
                        fontRunBoundary = GetBoundary(fontRuns[fontRunIndex].Key);
                }

                if (soonestBoundary == scriptRunBoundary)
                {
                    scriptRunIndex++;

                    if (scriptRunIndex < scriptRuns.Count)
                        scriptRunBoundary = GetBoundary(scriptRuns[scriptRunIndex].Key);
                }

                if (soonestBoundary == bidiRunBoundary)
                {
                    bidiRunIndex++;

                    if (bidiRunIndex < bidiRuns.Count)
                        bidiRunBoundary = GetBoundary(bidiRuns[bidiRunIndex].Key);
                }

                int nextBoundary = Min(fontRunBoundary, scriptRunBoundary, bidiRunBoundary);

                characterRange.CharacterIndex += characterRange.CharacterCount;
                characterRange.CharacterCount = nextBoundary - characterRange.CharacterIndex;
            }