Проблема почти такая же, как для функций отмены / возврата в редакторе, например.Вам нужны два стека типа System.Collections.Generic.Stack<string>
.Один стек отмены с содержит ранее посещенные страницы и один стек повторов.Это работает так:
Пользователь заходит на страницу 1.
Затем на страницу 2. Теперь поместите текущую страницу (страницу 1) в стек отмены.
Пользователь заходит на страницустраница 3. Теперь вставьте текущую страницу (страницу 2) в стек отмены.
Пользователь хочет перейти на предыдущую страницу.Извлеките страницу (это будет страница 2) из стека отмены и поместите реальную страницу (страницу 3) в стопку повторов.Затем отобразите страницу 2.
Если пользователь хочет идти вперед, а не назад, сделайте наоборот: выскочите из повтора и нажмите, чтобы отменить.
Если пользователь переходит к новомуНа этой странице вы также должны очистить стек повторного выполнения, поскольку с этого момента невозможно двигаться вперед.
Вы также можете вызвать стек отмены "стеком назад", а стек повторения - "стеком вперед".