Я использую окно тостер, это основная часть XAML:Тостер Окно не закрывается в диспетчере задач
<Grid.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard Completed="Storyboard_Completed">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)" Duration="0:0:10" Completed="DoubleAnimationCompleted">
<SplineDoubleKeyFrame KeyTime="0:0:0" Value="0"/>
<SplineDoubleKeyFrame KeyTime="0:0:0.5" Value="1"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="0:0:2" Value="1"/>
<SplineDoubleKeyFrame KeyTime="0:0:12" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
В основном это называется с шоу метода, как это:
public new void Show()
{
this.Topmost = true;
base.Show();
this.Owner = System.Windows.Application.Current.MainWindow;
this.Closed += this.NotificationWindowClosed;
var workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
this.Left = workingArea.Right - this.ActualWidth;
double top = workingArea.Bottom - this.ActualHeight;
foreach (Window window in System.Windows.Application.Current.Windows)
{
string windowName = window.GetType().Name;
if (windowName.Equals("NotificationWindow") && window != this)
{
window.Topmost = true;
top = window.Top - window.ActualHeight;
}
}
this.Top = top;
}
Проблема заключается в том, что всплывающее окно «Уведомления» остается в качестве подзаголовка в диспетчере задач. Каждый раз, когда окна тостера открываются (и снова закрываются), добавляется запись. В XAML я уже добавил Completed = "DoubleAnimationCompleted" и (после другого сообщения в Stackoverflow) Storyboard Completed = "Storyboard_Completed">. Оба метода вызываются и exectute this.Close(), но всплывающие окна не отображаются на панели задач. Таким образом this.Close (каким бы то ни было образом называется), похоже, не очищает эти записи.
Что я могу сделать, чтобы это изменить?