我对wpf很新,现在,我正在使用ModernUI 1.0.6版 我正在寻找一种方法来清除现代窗口的导航历史。 或者从现代窗口中移除导航按钮的方式也会受到赞赏。
提前感谢您的帮助:D
答案 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绑定属性。