it-swarm.com.de

So zeigen Sie eine Nachricht in Windows Store-Apps an

Wie kann ein Meldungsfeld in Windows 8-Apps angezeigt werden, indem c # wie MessageBox.Show () in Windows Phone 7 aufgerufen wird

27
user1547566

Die MessageDialog-Klasse sollte Ihren Anforderungen entsprechen.

26
JP Alioto
   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();

Und dein Anruf geht zurück

private void CancelBtnClick(IUICommand command)
{
}

private void OkBtnClick(IUICommand command)
{
}


P.S. Sie können dieses Tutorial für mehr folgen.

48

Meine einfachere Art für Bestätigungsnachrichtenfelder:

  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
  }
12
Antonio Bakula

Zur Vereinfachung können Sie den Nachrichtentext und die Schaltfläche OK anzeigen. Verwenden Sie Windows.UI.Popups-Namespace. Erstellen Sie eine Methode messagebox(), die diese Methode sein soll

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

Dann rufen Sie diese Methode gerne in Ihrem Code auf

messageBox("Unexpected error held");
8
Muhammed Mufees

Zusätzliches Leckerbissen:

In einer modernen Windows-App wird ein MessageDialog nicht angezeigt, bevor Ihre Anwendung Window.Current.Active () aufgerufen wird. Dies geschieht normalerweise in der OnLaunched () - Methode der App-Klasse. Wenn Sie MessageDialog verwenden möchten, um eine Startup-Ausnahme anzuzeigen, müssen Sie dies unbedingt beachten.

Mein Test zeigt an, dass MessageDialog.ShowAsync () tatsächlich warten kann, aber ohne dass das Dialogfeld angezeigt wird, wenn Window.Current.Active () noch nicht aufgerufen wurde. Aus Sicht der Codeausführung sieht es so aus, als ob alles funktioniert, aber noch kein Dialog wird angezeigt.

Wenn während des Startvorgangs eine Ausnahme angezeigt werden soll, fallen mir zwei Optionen ein (möglicherweise mehr).

  1. Erfassen Sie die Ausnahmeinformationen und warten Sie, bis sie nach Window.Current.Activate () angezeigt werden. Dies kann funktionieren, wenn es sich bei der Ausnahme um eine Wiederherstellung der Anwendung handelt und der Startvorgang fortgesetzt wird. Wenn z. B. ein Fehler beim Wiederherstellen gespeicherter Statusinformationen auftritt, möchte die App dies möglicherweise dem Benutzer melden, startet dann aber weiter, als wäre kein gespeicherter Status vorhanden.

  2. Wenn die Situation so ist, dass die App ihre Hände hochwirft und beabsichtigt, das Programm zu beenden, den Benutzer jedoch wissen möchte, was passiert ist, könnte es eine andere Lösung sein, einen separaten dedizierten Codeblock/eine separate Methode zu haben, die einen neuen Clean Frame in Windows einfügt .Current.Content aktiviert es mit Windows.Current.Activate () und ruft dann MessageDialog.ShowAsync () auf. Ich habe noch nicht mit diesem Ansatz experimentiert, daher bin ich mir nicht sicher, ob auch andere Bedingungen erfüllt werden müssen, z. B. das Laden einer Seite in den Rahmen.

2
Keith

verwenden für Seite wie:

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();
}
0
user5823144