我正在尝试在我的代码中实现Mahapps Metro Message box,但是想在class而不是任何WPF Window上使用它,我能实现吗?,因为我不想使用普通的Message Boxes

switch(x)
{
   case "a":
   //Do something
   break;
   case "b":
   var result = MessageBox.Show("TitleMessage","If you want to continue",MessageboxButton.YesNo);
  break;
}


因此,我想使用MessageBox代替此Mahapps Message Box,然后使用此结果变量。

最佳答案

由于ShowMessageAsync方法是MetroWindow类的扩展方法,因此需要有一个窗口才能调用它。

如果应用程序的主窗口是Metro窗口,则应该能够从任何引用PresentationFramework程序集的类中调用此类方法:

var metroWindow = (Application.Current.MainWindow as MetroWindow);
await metroWindow.ShowMessageAsync("title", "message...");


请参考以下链接以获取更多信息:
https://github.com/MahApps/MahApps.Metro/issues/1129

Can't use await on ShowMessageAsync

关于c# - 单击确定和取消实现Mahapps MessageBox,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41121566/

10-10 09:43