private void BuildTransitionAnimation() { transition_animation = new DoubleAnimation ("Opacity"); transition_animation .Throttle (250) .Compose ((a, p) => { var opacity = a.StartState == 0 ? p : 1 - p; if (p == 1) { if (a.StartState == 1) { UpdateMetadataDisplay (); } if (a.ToValue == 1) { a.Expire (); } else { a.Reverse (); } } return opacity * text_opacity; }).Ease (Easing.QuadraticInOut); }