C# 如何从App.xaml.cs运行MessageBox.Show()
我可以从App.xaml.cs运行MessageBox.Show(),这样它就会显示在当前页面上。请为此解决方案或其他解决方案提供一些代码。我需要显示一些与整个应用程序相关的系统消息。我从您的问题中了解到的是,当应用程序中的其他地方发生某些事件时,您正在寻找显示App.xaml.cs中消息的方法 您可以使用App.xaml.cs注册一个事件来实现观察者模式,该事件可能由您的自定义页面触发 话虽如此,从长远来看,我建议您为此使用消息传递框架。大多数MVVM框架都附带了消息传递框架。它们易于使用,没有或几乎没有学习曲线C# 如何从App.xaml.cs运行MessageBox.Show(),c#,windows-phone-7,messagebox,C#,Windows Phone 7,Messagebox,我可以从App.xaml.cs运行MessageBox.Show(),这样它就会显示在当前页面上。请为此解决方案或其他解决方案提供一些代码。我需要显示一些与整个应用程序相关的系统消息。我从您的问题中了解到的是,当应用程序中的其他地方发生某些事件时,您正在寻找显示App.xaml.cs中消息的方法 您可以使用App.xaml.cs注册一个事件来实现观察者模式,该事件可能由您的自定义页面触发 话虽如此,从长远来看,我建议您为此使用消息传递框架。大多数MVVM框架都附带了消息传递框架。它们易于使用,没
还有很多这样的框架。一个简单的方法是
public partial class App : Application
{
public static void ShowBox(string msg)
{
MessageBox.Show(msg);
}
}
然后从窗口或应用程序的任何其他部分
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
App.ShowBox("Hello!");
...
因为“ShowBox”方法是静态的,所以您可以从任何地方调用它。当然,不用说,这不是真正“最干净”或最稳健的方法,但它会起作用。不确定,但这不会起作用吗
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
MessageBox.Show("");
}
);
您还可以使用App.xaml.cs中提供的导航数据来确定当前页面并在该页面上执行
我想无论你想出什么,应用程序都需要处于稳定状态,当你处理(未处理)异常时,你可能无法做到这一点。你应该多告诉我们一点,这样我们才能理解你为什么要这么做。如果您必须从App.xaml.cs调用MessageBox.Show,那么您的设置似乎有问题。我使用了此链接的摘录
没有其他解决方案,发现:
CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync
适用于windows phone 8.1,用于从App.xaml.cs调用MessageDialog到ui线程。MessageBox.Show()始终显示在当前页面的顶部。你能再解释一下你的要求吗?这是真的,当你从当前页面运行它时,但我需要通过App.xaml.cs类中的某个事件来运行它。谢谢,但我的事件来自App类,MessageBox.Show(msg)应该显示在任何页面的顶部。据我所知,MessageBox始终是最顶部的,是的,它是,现在我的问题是,我如何从App类运行它,而不是从任何其他页面运行它,谢谢谢谢,我需要从App.xaml.c触发。这对我很有用,谢谢。我需要通知用户,当应用程序收到原始推送通知时。用户可以在应用程序中的任何位置。如果用户不喜欢,可以在设置中禁用此功能。有不同的方法来实现此功能。我想到的第一件事是创建一个事件,当通知到达时触发,这样页面就可以订阅它。通过这种方式,您可以在实际页面中而不是在App.xaml.cs中处理它。您可以从页面创建一个派生基类,用于实现处理事件的公共方法的所有页面。我希望这有点道理。您应该尽量保持App.xaml的干净。
CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync