Skip to content

Commit 3a7f3fa

Browse files
Merge pull request #26 from UmutComlekci/master
fixed #25
2 parents 46c634f + 60e2350 commit 3a7f3fa

File tree

4 files changed

+34
-69
lines changed

4 files changed

+34
-69
lines changed

Enterwell.Clients.Wpf.Notifications.Sample/MainWindow.xaml.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@ public MainWindow()
1717
{
1818
this.InitializeComponent();
1919
this.DataContext = this;
20+
Manager.OnMessageDismissed += Manager_OnMessageDismissed;
2021
}
2122

23+
private void Manager_OnMessageDismissed(object sender, NotificationMessageManagerEventArgs args)
24+
{
25+
}
2226

2327
private void ButtonBaseErrorOnClick(object sender, RoutedEventArgs e)
2428
{

Enterwell.Clients.Wpf.Notifications/Controls/NotificationMessageContainer.cs

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ private static void ManagerPropertyChangedCallback(DependencyObject dependencyOb
3838
{
3939
if (!(dependencyObject is NotificationMessageContainer @this))
4040
throw new NullReferenceException("Dependency object is not of valid type " + nameof(NotificationMessageContainer));
41-
41+
4242
if (dependencyPropertyChangedEventArgs.OldValue is INotificationMessageManager oldManager)
4343
@this.DetachManagerEvents(oldManager);
44-
44+
4545
if (dependencyPropertyChangedEventArgs.NewValue is INotificationMessageManager newManager)
4646
@this.AttachManagerEvents(newManager);
4747
}
@@ -78,26 +78,7 @@ private void ManagerOnOnMessageDismissed(object sender, NotificationMessageManag
7878
throw new InvalidOperationException(
7979
"Can't use both ItemsSource and Items collection at the same time.");
8080

81-
if (args.Message is INotificationAnimation animatableMessage)
82-
{
83-
var animation = animatableMessage.AnimationOut;
84-
if (animation != null &&
85-
animatableMessage.Animates &&
86-
animatableMessage.AnimatableElement != null &&
87-
animatableMessage.AnimationOutDependencyProperty != null)
88-
{
89-
animation.Completed += (s, a) => this.RemoveMessage(args.Message);
90-
animatableMessage.AnimatableElement.BeginAnimation(animatableMessage.AnimationOutDependencyProperty, animation);
91-
}
92-
else
93-
{
94-
this.RemoveMessage(args.Message);
95-
}
96-
}
97-
else
98-
{
99-
this.RemoveMessage(args.Message);
100-
}
81+
this.RemoveMessage(args.Message);
10182
}
10283

10384
private void RemoveMessage(INotificationMessage message)

Enterwell.Clients.Wpf.Notifications/NotificationMessageBuilderLinq.cs

Lines changed: 4 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -231,28 +231,7 @@ private static Action<INotificationMessage> DismissBefore(
231231
{
232232
return call =>
233233
{
234-
if (builder.Message is INotificationAnimation animatableMessage)
235-
{
236-
var animation = animatableMessage.AnimationOut;
237-
if (animation != null &&
238-
animatableMessage.Animates &&
239-
animatableMessage.AnimatableElement != null &&
240-
animatableMessage.AnimationOutDependencyProperty != null)
241-
{
242-
animation.Completed += (s, a) =>
243-
{
244-
builder.Manager.Dismiss(builder.Message);
245-
};
246-
}
247-
else
248-
{
249-
builder.Manager.Dismiss(builder.Message);
250-
}
251-
}
252-
else
253-
{
254-
builder.Manager.Dismiss(builder.Message);
255-
}
234+
builder.Manager.Dismiss(builder.Message);
256235
callback?.Invoke(builder.Message);
257236
};
258237
}
@@ -272,28 +251,7 @@ private static Action<INotificationMessageButton> DismissBefore(
272251
{
273252
return button =>
274253
{
275-
if (builder.Message is INotificationAnimation animatableMessage)
276-
{
277-
var animation = animatableMessage.AnimationOut;
278-
if (animation != null &&
279-
animatableMessage.Animates &&
280-
animatableMessage.AnimatableElement != null &&
281-
animatableMessage.AnimationOutDependencyProperty != null)
282-
{
283-
animation.Completed += (s, a) =>
284-
{
285-
builder.Manager.Dismiss(builder.Message);
286-
};
287-
}
288-
else
289-
{
290-
builder.Manager.Dismiss(builder.Message);
291-
}
292-
}
293-
else
294-
{
295-
builder.Manager.Dismiss(builder.Message);
296-
}
254+
builder.Manager.Dismiss(builder.Message);
297255
callback?.Invoke(button);
298256
};
299257
}
@@ -360,11 +318,11 @@ public static NotificationMessageBuilder WithAdditionalContent(
360318
default:
361319
{ break; }
362320
}
363-
321+
364322

365323
return builder;
366324
}
367-
325+
368326
/// <summary>
369327
/// Sets the foreground brush.
370328
/// </summary>

Enterwell.Clients.Wpf.Notifications/NotificationMessageManager.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,29 @@ public void Dismiss(INotificationMessage message)
6666

6767
this.queuedMessages.Remove(message);
6868

69-
this.TriggerMessageDismissed(message);
69+
if (message is INotificationAnimation animatableMessage)
70+
{
71+
var animation = animatableMessage.AnimationOut;
72+
if (animation != null &&
73+
animatableMessage.Animates &&
74+
animatableMessage.AnimatableElement != null &&
75+
animatableMessage.AnimationOutDependencyProperty != null)
76+
{
77+
animation.Completed += (s, a) =>
78+
{
79+
this.TriggerMessageDismissed(message);
80+
};
81+
animatableMessage.AnimatableElement.BeginAnimation(animatableMessage.AnimationOutDependencyProperty, animation);
82+
}
83+
else
84+
{
85+
this.TriggerMessageDismissed(message);
86+
}
87+
}
88+
else
89+
{
90+
this.TriggerMessageDismissed(message);
91+
}
7092
}
7193

7294
/// <summary>

0 commit comments

Comments
 (0)