You should never ever block the UI thread by calling Thread.Sleep.
I think that the best solution is to create a storyboard in your XAML that will perform the required visual changes. Your button click event handler should then simply call Begin on the storyboard.