I find myself having to make custom animations when I trigger visibility changes since there is no way to do so automatically. I expected LayoutChange and LayoutAnimation to handle that case, but no luck. I would suggest that elements would respond to something like:

    <VisibilityAnimation Invert="false">
        <Change Target="myTarget.Offset" Value="0,-50" Duration="0.5" DurationBack="0" Easing="CubicOut" />

This animation would toggle on and off as if it were inside a WhileTrue block, therefore running Duration/Easing on Visibility="Visible" and DurationBack/EasingBack on Visibility="Hidden" or Visibility="Collapsed". The Invert parameter would start the animation during Hidden or Collapsed and resume it on Visible instead.

We have an issue to add such animations for visibility change, or parallel the adding/removing animations. At the moement you’ll have to create your own triggers/timelines and have the actual visibility change as the final action performed.