2012-12-20 17 views
7

In meiner Anwendung möchte ich den Benutzer mit dem ShellToast benachrichtigen.Wie kann ich ein Shelltoast erstellen?

Nur durch Ausführen ...

var toast = new ShellToast 
{ 
    Title = "Nom nom nom!", 
    Content = "More! More! Keep feeding me!", 
}; 
toast.Show(); 

... macht nichts passieren, und wie ich verstehen muss es von einem ScheduledTaskAgent ausgeführt werden. Aber wie führe ich diesen Befehl aus und stelle sicher, dass er nur einmal ausgeführt wird?

Antwort

24

Sie können kein ShellToast verwenden, während die App die Vordergrund-App ist. Es soll von einem Hintergrunddienst aufgerufen werden, während die App nicht die Vordergrund-App ist.

Wenn Sie ein UX ähnlich dem von ShellToast haben möchten, verwenden Sie das Coding4fun toolkit ToastPrompt-Steuerelement. Hier ist ein Codeausschnitt zeigt, wie es zu benutzen:

private void ToastWrapWithImgAndTitleClick(object sender, RoutedEventArgs e) 
    { 
     var toast = GetToastWithImgAndTitle(); 
     toast.TextWrapping = TextWrapping.Wrap; 

     toast.Show(); 
    } 

    private static ToastPrompt GetToastWithImgAndTitle() 
    { 
     return new ToastPrompt 
     { 
      Title = "With Image", 
      TextOrientation = System.Windows.Controls.Orientation.Vertical, 
      Message = LongText, 
      ImageSource = new BitmapImage(new Uri("../../ApplicationIcon.png", UriKind.RelativeOrAbsolute)) 
     }; 
    } 

diesen Code-Schnipsel Lauf zeigt folgend:

ToastPrompt control with image

+0

Hallo. Ich habe diesen Code ausprobiert. Es gibt ungültigen Cross-Thread-Zugriffsfehler. Wie kann ich es beheben – PratPor

+0

Sie müssen den Code im Hauptthread ausführen. – Hyndrix

0

Nur ein kleines Update: ShellToast verwenden, wenn der App im Vordergrund steht, ist jetzt möglich, wenn Windows Phone 8 Update 3 verwendet wird. Sie sind jedoch durch andere Aktivitäten wie einen Telefonanruf oder den Sperrbildschirm verdeckt. Source

+0

Ich denke, Sie haben es falsch gelesen, "Toast-Benachrichtigungen werden angezeigt, wenn die Ziel-App im Vordergrund läuft _but_ wird jedoch durch andere Aktivitäten wie einen Anruf oder den Sperrbildschirm verdeckt". – holmis83

Verwandte Themen