Die Anwort ist, geht nicht. Silverlight 4 bringt zwar für OOB Anwendungen die Möglichkeit ein Popup im Bereich Tray Icons zu zeigen, aber eben nur eines. Wenn man ein zweites Notification Window per Show anzeigen möchte erntet man eine Exception. Die Lösung ist eine Queue zu bauen, etwas was ich seit ca 10 Jahren nicht mehr gemacht habe. In .NET ist das aber super einfach. Hier unkommentiert das komplette Code Beispiel. Um zuverlässig mehr Toasts erzeugen zu können als angezeigt werden habe ich einen Timer verwendet der jede Sekunde eine Notification Window anzeigt das 2 Sekunden steht.
Imports System.Windows.Threading
Partial Public Class page30
Inherits UserControl
Public Sub New()
InitializeComponent()
End Sub
Dim dp As New DispatcherTimer
Private nwQueue As Queue(Of NotificationWindow)
Private nwIsopen As Boolean = False
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
nwQueue = New Queue(Of NotificationWindow)()
dp.Interval = New TimeSpan(0, 0, 1)
AddHandler dp.Tick, AddressOf ticking
dp.Start()
End Sub
Private Sub ticking(ByVal sender As Object, ByVal e As EventArgs)
Dim nw As New NotificationWindow
nw.Width = 150
nw.Height = 30
nw.Content = New TextBlock With {.Text = "hannes" + Date.Now.Second.ToString}
AddHandler nw.Closed, AddressOf nwClosed
If Not nwIsopen Then
nw.Show(2000)
nwIsopen = True
Else
nwQueue.Enqueue(nw)
End If
End Sub
Private Sub nwClosed(ByVal sender As Object, ByVal e As EventArgs)
If nwQueue.LongCount = 0 Then
nwIsopen = False
Else
Dim nw As NotificationWindow = nwQueue.Dequeue()
nw.Show(2000)
nwIsopen = True
End If
End Sub
End Class