Is there any event that fires when WPF Animation ends?
void HideDefaultScreenImageTimer_Tick(object sender, EventArgs e)
{
Yes there is.
The Completed Event (MSDN).
So your code becomes:
void HideDefaultScreenImageTimer_Tick(object sender, EventArgs e)
{
HideDefaultScreenImageTimer.Stop();
var doubleAnimation = new DoubleAnimation(1, 0, new Duration(TimeSpan.FromSeconds(0.45)));
doubleAnimation.Completed += (sender, eArgs) => MainCanvas.Children.Remove(DefaultScreenImage);
DefaultScreenImage.BeginAnimation(UIElement.OpacityProperty, doubleAnimation);
}