清除导航堆栈mui wpf

时间:2015-05-11 10:10:34

标签: mui

我对wpf很新,现在,我正在使用ModernUI 1.0.6版 我正在寻找一种方法来清除现代窗口的导航历史。 或者从现代窗口中移除导航按钮的方式也会受到赞赏。

提前感谢您的帮助:D

1 个答案:

答案 0 :(得分:1)

你可以尝试阅读mui的源代码,你会发现smoe方式清除。 首先,您可以尝试反映ModernFrame类以获取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();

其次,您可以在KeepContentAlive类中找到DependencyProperty ModernFrame,此属性具有propertyChangedCallback,因此导航历史记录将清除其值是否已更改。要执行此操作,您需要重写ModernWindow的样式并使用KeepContentAlive从vm绑定属性。