清除导航堆栈 mui wpf

Clear Navigation Stack mui wpf

我是 wpf 的新手,现在,我使用的是 ModernUI 1.0.6 版 我正在寻找一种方法来清除 modernwindow 的导航历史记录。 或者将导航按钮从 modernwindow 中移除的方法也将不胜感激。

你可以尝试阅读mui的源码,你会发现smoe的清除方式。 首先你可以尝试反射 ModernFrame class 来获取 history 字段,然后你可以在你想要的地方调用 Clear() ,代码如下:

var frame = view.FindChild<ModernFrame>("ContentFrame");
var field = typeof(ModernFrame).GetField("history", BindingFlags.NonPublic | BindingFlags.Instance);
var history = (Stack<Uri>)field.GetValue(frame);

history.Clear();

其次你可以在ModernFrame class中找到DependencyProperty KeepContentAlive,这个属性有一个propertyChangedCallback,所以如果它的导航历史将被清除价值改变了。为此,您需要重写 ModernWindow 的样式并将 属性 与来自 vm.

KeepContentAlive 绑定