We want to now make the dwarf stand up by running the animation backwards, but there is a subtle problem. The animation is tagged as "IsLooping == false", but we are at the end of the animation, so the ElapsedTime is equal to the duration. To override this, we will manually step through the animation.
private void UpdateState(GameTime gameTime)
    if (keyState.IsKeyDown(Keys.Space))
    {
        crouchDown.ElapsedTime = crouchDown.AnimationSource.Duration;
        crouchDown.SpeedFactor = 0;
        state = "standUp";
    }
    else if (state == "standUp")
    {
        if (crouchDown.ElapsedTime - gameTime.ElapsedGameTime.Ticks <= 0)
        {
            crouchDown.SpeedFactor = 1;
            crouchDown.ElapsedTime = 0;
            idle.ElapsedTime = 0;
            state = "idle";
        }
        else
            crouchDown.ElapsedTime -= gameTime.ElapsedGameTime.Ticks;
        foreach (BonePose p in poses)
        {
            p.CurrentAnimation = crouchDown;
            p.CurrentBlendAnimation = null;
        }
    }