使用Mahapps.metro,并遇到问题。
我想分页分页内容,全部通过地铁窗口内的框架进行控制。
有两件事我无法弄明白怎么做,这很简单,同时在没有页面的情况下在一个窗口内工作。
首先,我想使用他们的对话框。以下行直接在窗口中使用时工作:
await this.ShowMessageAsync("This is the title", "User Setting: " + x);
但是,它现在会出现以下错误:
实例参数:无法从'GameWindow.MainMenu'转换为'MahApps.Metro.Controls.MetroWindow'
我尝试过寻找答案,以及尝试
之类的事情await this.Parent.ShowMessageAsync("This is the title", "User Setting: " + x);
但都无济于事。
其次,我在我的窗口中配置了一个弹出按钮,我还需要从框架内的页面进行访问。我不能为我的生活想出这一个......
答案 0 :(得分:4)
您必须走可视树以找到MetroWindow
实例,例如
using MahApps.Metro.Controls;
using MahApps.Metro.Controls.Dialogs;
await this.TryFindParent<MetroWindow>()
.ShowMessageAsync("This is the title", "User Setting: " + x);
TryFindParent<>
是MahApps.Metro.Controls.TreeHelper
中定义的扩展方法,ShowMessageAsync<>
中定义了MahApps.Metro.Controls.Dialogs.DialogManager
。如果您不想使用扩展方法,请尝试以下代码:
var window = TreeHelper.TryFindParent<MetroWindow>(this);
await DialogManager.ShowMessageAsync(window, "This is the title", "User Setting: " + x);