2012-12-20 8 views
7

W mojej aplikacji chcę powiadomić użytkownika o numerze ShellToast.Jak mogę utworzyć muszelkę?

Wystarczy uruchamiając ...

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

... sprawia, że ​​nic nie stało, i jak rozumiem, to musi być uruchamiany z ScheduledTaskAgent. Ale jak uruchomić to polecenie i upewnić się, że działa tylko raz?

Odpowiedz

24

Nie można użyć powłoki ShellToast, gdy aplikacja jest aplikacją pierwszoplanową. Jest przeznaczony do wywołania z usługi działającej w tle, a aplikacja nie jest aplikacją pierwszoplanową.

Jeśli chcesz mieć UX podobny do tego z ShellToast użyj kontrolki ToastPrompt Coding4fun toolkit. Oto fragment kodu pokazuje, jak używać go:

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)) 
     }; 
    } 

Running ten fragment kodu pokazuje następujący:

ToastPrompt control with image

+0

Witam. Próbowałem tego kodu. Daje nieprawidłowy błąd dostępu do wątków. Jak mogę to naprawić – PratPor

+0

Musisz uruchomić kod w głównym wątku. – Hyndrix

0

Wystarczy mała zmiana: używając ShellToast gdy aplikacja jest na pierwszym planie, to teraz możliwe, gdy korzystasz z Windows Phone 8 Update 3. Chociaż są one zasłonięte przez inne działania, takie jak połączenie telefoniczne lub ekran blokady. Source

+0

Myślę, że źle odczytałeś, "powiadomienia o tostach są wyświetlane, gdy aplikacja docelowa działa na pierwszym planie _but_ jest zasłonięte przez inne działania, takie jak połączenie telefoniczne lub ekran blokady". – holmis83

Powiązane problemy