Подтвердить что ты не робот

Как отобразить сообщение в приложениях Windows Store?

Как отобразить окно сообщения в приложениях Windows 8 с помощью С#, например, вызвать MessageBox.Show() в Windows Phone 7?

4b9b3361

Ответ 1

Класс MessageDialog должен соответствовать вашим потребностям.

Ответ 2

   MessageDialog msgDialog = new MessageDialog("Your message", "Your title");

   //OK Button
   UICommand okBtn = new UICommand("OK");
   okBtn.Invoked = OkBtnClick;
   msgDialog.Commands.Add(okBtn);

   //Cancel Button
   UICommand cancelBtn = new UICommand("Cancel");
   cancelBtn.Invoked = CancelBtnClick;
   msgDialog.Commands.Add(cancelBtn);

   //Show message
   msgDialog.ShowAsync();

И ваш звонок назад

private void CancelBtnClick(IUICommand command)
{
}

private void OkBtnClick(IUICommand command)
{
}


P.S. Вы можете следовать этому руководству для более подробной информации.

Ответ 3

Мой простой способ, для полей сообщения типа подтверждения:

  var dlg = new MessageDialog("Are you sure?");
  dlg.Commands.Add(new UICommand("Yes", null, "YES"));
  dlg.Commands.Add(new UICommand("No", null, "NO"));
  var op = await dlg.ShowAsync();
  if ((string)op.Id == "YES")
  {
    //Do something
  }

Ответ 4

Для упрощения, просто для отображения текста сообщения и кнопки OK. Используйте пространство имен Windows.UI.Popups. Создайте метод messagebox(), который должен быть

using Windows.UI.Popups;
protected async void messageBox(string msg)
{
      var msgDlg = new Windows.UI.Popups.MessageDialog(msg);
      msgDlg.DefaultCommandIndex = 1;
      await msgDlg.ShowAsync();
}

Затем вызовите этот метод в своем коде, например

messageBox("Unexpected error held");

Ответ 5

Дополнительный лакомый кусочек:

В современном приложении Windows приложение MessageDialog не будет отображаться до того, как ваше приложение совершит свой вызов Window.Current.Active(), что обычно происходит в методе OnLaunched() класса приложения. Если вы пытаетесь использовать MessageDialog для отображения чего-то вроде начального исключения, это важно иметь в виду.

Мое тестирование указывает на MessageDialog.ShowAsync() может на самом деле ждать, но без отображения диалогового окна, если Window.Current.Active() еще не был вызван, поэтому с точки зрения выполнения кода это будет выглядеть так, как будто все работает, но но диалог не отображается.

Если цель заключается в отображении исключения во время запуска, я могу представить два варианта (их может быть больше).

  • Захватите информацию об исключении, а затем дождитесь ее отображения до тех пор, пока не появится Window.Current.Activate(). Это может работать, если исключение таково, что приложение может восстановить его и продолжить с запуском. Например, если есть ошибка восстановления сохраненной информации о состоянии, приложение может захотеть сообщить об этом пользователю, но затем продолжить запуск, как если бы не было сохраненного состояния.

  • Если ситуация такова, что приложение бросает руки и намеревается прекратить работу, но хочет сообщить пользователю, что произошло, тогда другое решение может состоять в том, чтобы иметь отдельный выделенный блок/метод кода, который подключается новый чистый кадр в Windows.Current.Content, активирует его с помощью Windows.Current.Activate(), а затем вызывает MessageDialog.ShowAsync(). Я не экспериментировал с этим подходом, поэтому я не уверен, что нужно выполнить другие условия, например, погрузить страницу в кадр.

Ответ 6

используйте для страницы, например:

private async void AppBarButton_Click(object sender, RoutedEventArgs e)
{
    Windows.UI.Popups.MessageDialog a = new Windows.UI.Popups.MessageDialog("hello this is awth");
    await a.ShowAsync();
}