c# - 在WPF中是否有一個MessageBox等價物?




(8)

是。 它被稱為System.Windows.MessageBox。

http://msdn.microsoft.com/en-us/library/system.windows.messagebox.aspx

在WPF中是否存在標準消息框,如WinForms的System.Windows.MessageBox.Show() ,還是應該使用WinForms消息框?


你可以使用這個

MessageBoxResult result = MessageBox.Show("Do you want to close this window?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
    Application.Current.Shutdown();
}

欲了解更多信息,請訪問http://www.c-sharpcorner.com/uploadfile/mahesh/messagebox-in-wpf/


在WPF中看起來這樣的代碼:

 System.Windows.Forms.MessageBox.Show("Test");

被替換為:

System.Windows.MessageBox.Show("Test");

擴展WPF工具包中的MessageBox非常好。 它在引用工具包DLL後位於Microsoft.Windows.Controls.MessageBox。 當然,這是2011年8月9日發布的,因此它最初不會成為您的選擇。 在Codeplex可以找到所有人在那里四處看看。


WPF包含以下消息框:

if (MessageBox.Show("Do you want to Save?", "Confirm", 
    MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{

}

WPF等價物將是System.Windows.MessageBox 。 它有一個非常相似的接口,但使用其他枚舉參數和返回值。


也許代碼她下面的幫助

using Windows.UI.Popups; 
namespace something.MyViewModels
{
    public class TestViewModel 
    {
        public void aRandonMethode()
        {
            MyMessageBox("aRandomMessage");
        }

        public async void MyMessageBox(string mytext)
        {
            var dialog = new MessageDialog(mytext); await dialog.ShowAsync();
        }
    }
}

您可以在不同級別捕獲未處理的異常:

  1. AppDomain.UnhandledException所有線程。
  2. Dispatcher.UnhandledException從一個特定的UI調度程序線程。
  3. Application.DispatcherUnhandledException從您的WPF應用程序中的 UI調度程序線程。
  4. 每個使用任務調度程序進行異步操作的AppDomain中的TaskScheduler.UnobservedTaskException

您應該考慮在什麼級別捕捉未處理的異常。

決定#2和#3取決於您是否使用多個WPF線程。 這是一個非常異乎尋常的情況,如果你不確定你是不是,那很可能你不是。





c# wpf messagebox