Препятствуйте тому, чтобы Кадр WPF хранил историю в стеке

Это кажется, что было бы легкое решение, но я трачу впустую слишком много времени, пытаясь понять это. Возможно, я разрабатываю свое приложение неправильно (который мог бы иметь место), поэтому выручите меня, если у Вас есть лучшее решение.

Я разрабатываю уровень предприятия приложение WPF, которое много походит на Outlook с a Ribbon вместо панели инструментов. У меня есть много различных модулей, которые загружаются в кадр, когда пользователь нажимает на a RibbonButton. Следует иметь в виду, что его лента совместно используется через все модули.

Таким образом, у меня есть оболочка с лентой и кадром. Когда пользователь нажимает на кнопку Ribbon, она загружает надлежащий модуль (usercontrol) в кадр. Все хорошо. Однако, если я перешел к другому модулю (путем нажатия на другой RibbonButton) и затем нажимаю на оригинал RibbonButton, У меня теперь есть два экземпляра того же модуля, открытого..., но только один показывают в кадре... другой модуль находится в стопке кадра.

Таким образом, мой вопрос, как я говорю кадру закрывать usercontrol, когда я перешел к другому модулю? Я попытался установить JournalEntry.KeepAlive="False", но это все еще не работало. Какие-либо мысли? Существует действительно не много кода для регистрации, но я могу сделать так, если он поможет Вам.

8
задан Rudi Visser 4 February 2013 в 10:47
поделиться

1 ответ

Если вы никогда не собираетесь «возвращаться» к предыдущей записи, вы можете использовать NavigationService.RemoveBackEntry () , чтобы очистить историю каждый раз, когда вы путешествуете. Самый простой способ сделать это - обработать событие Frame Navigated :

frame.Navigated += frame_Navigated;

void frame_Navigated(object sender, NavigationEventArgs e)
{
    frame.NavigationService.RemoveBackEntry();
}
10
ответ дан 5 December 2019 в 17:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: