2012-12-20 23 views
7

私のアプリケーションでは、ShellToastでユーザーに通知したいと思います。ただ、実行してシェルトストアを作成するにはどうしたらいいですか?

...

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

は...何も起こらなかっなり、私は理解して、ScheduledTaskAgentから実行する必要があります。しかし、私はこれをコマンドで実行し、一度だけ実行するようにしますか?

答えて

24

アプリケーションがフォアグラウンドアプリケーションの場合は、ShellToastは使用できません。これは、アプリケーションがフォアグラウンドアプリではない間にバックグラウンドサービスから呼び出されることを意図しています。

UXをShellToastと同じにしたい場合は、Coding4fun toolkit ToastPromptコントロールを使用してください。ここではそれを使用する方法を示すコードスニペットです:このコードスニペットを実行

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

は、次のことを示しています

ToastPrompt control with image

+0

こんにちは。私はこのコードを試していた。無効なクロススレッドアクセスエラーが発生します。どのように私はそれを修正することができます – PratPor

+0

メインスレッドでコードを実行する必要があります。 – Hyndrix

0

ほんの少しのアップデート:アプリがフォアグラウンドにあるときShellToastを使用すると、今あります可能であれば、Windows Phone 8 Update 3を使用していますが、電話やロック画面などの他のアクティビティによって隠されています。 Source

+0

あなたはそれを間違って読んだと思います。 "トースト通知は、ターゲットアプリケーションがフォアグラウンドで実行されているときに表示されますが、電話やロック画面などの他のアクティビティによって隠されています。 – holmis83

関連する問題