1
- using System ;
1
+ using System ;
2
2
using System . Collections . Generic ;
3
3
using System . Diagnostics ;
4
4
using System . Linq ;
@@ -338,7 +338,10 @@ Snackbar FindSnackbar() => _pairedSnackbars.FirstOrDefault(sb =>
338
338
private async Task ShowAsync ( Snackbar snackbar , SnackbarMessageQueueItem messageQueueItem , ManualResetEvent actionClickWaitHandle )
339
339
{
340
340
//create and show the message, setting up all the handles we need to wait on
341
- var mouseNotOverManagedWaitHandle = CreateAndShowMessage ( snackbar , messageQueueItem , actionClickWaitHandle ) ;
341
+ var tuple = CreateAndShowMessage ( snackbar , messageQueueItem , actionClickWaitHandle ) ;
342
+ var snackbarMessage = tuple . Item1 ;
343
+ var mouseNotOverManagedWaitHandle = tuple . Item2 ;
344
+
342
345
var durationPassedWaitHandle = new ManualResetEvent ( false ) ;
343
346
StartDuration ( messageQueueItem . Duration . Add ( snackbar . ActivateStoryboardDuration ) , durationPassedWaitHandle ) ;
344
347
@@ -352,14 +355,18 @@ private async Task ShowAsync(Snackbar snackbar, SnackbarMessageQueueItem message
352
355
//this for now...at least it is prevent extra call back hell
353
356
await Task . Delay ( snackbar . DeactivateStoryboardDuration ) ;
354
357
358
+ //this prevents missing resource warnings after the message is removed from the Snackbar
359
+ //see https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/issues/2040
360
+ snackbarMessage . Resources = SnackbarMessage . defaultResources ;
361
+
355
362
//remove message on snackbar
356
363
snackbar . SetCurrentValue ( Snackbar . MessageProperty , null ) ;
357
364
358
365
mouseNotOverManagedWaitHandle . Dispose ( ) ;
359
366
durationPassedWaitHandle . Dispose ( ) ;
360
367
}
361
368
362
- private static MouseNotOverManagedWaitHandle CreateAndShowMessage ( UIElement snackbar ,
369
+ private static Tuple < SnackbarMessage , MouseNotOverManagedWaitHandle > CreateAndShowMessage ( UIElement snackbar ,
363
370
SnackbarMessageQueueItem messageQueueItem , EventWaitHandle actionClickWaitHandle )
364
371
{
365
372
var clickCount = 0 ;
@@ -376,7 +383,7 @@ private static MouseNotOverManagedWaitHandle CreateAndShowMessage(UIElement snac
376
383
} ;
377
384
snackbar . SetCurrentValue ( Snackbar . MessageProperty , snackbarMessage ) ;
378
385
snackbar . SetCurrentValue ( Snackbar . IsActiveProperty , true ) ;
379
- return new MouseNotOverManagedWaitHandle ( snackbar ) ;
386
+ return Tuple . Create ( snackbarMessage , new MouseNotOverManagedWaitHandle ( snackbar ) ) ;
380
387
}
381
388
382
389
private static async Task WaitForCompletionAsync (
0 commit comments