XNA - Pong Clone - ¿Bola reflectante cuando golpea una pared?

Estoy tratando de hacer que la pelota rebote en las 'paredes' superiores e inferiores de mi interfaz de usuario al crear un clon de Pong 2D. Este es mi Game.cs

public void CheckBallPosition()
{
    if (ball.Position.Y == 0 || ball.Position.Y >= graphics.PreferredBackBufferHeight)
        ball.Move(true);
    else
        ball.Move(false);

    if (ball.Position.X < 0 || ball.Position.X >= graphics.PreferredBackBufferWidth)
        ball.Reset();
}

En este momento estoy usando esto en mi Ball.cs

    public void Move(bool IsCollidingWithWall)
    {
        if (IsCollidingWithWall)
        {
            Vector2 normal = new Vector2(0, 1);
            Direction = Vector2.Reflect(Direction,normal);
            this.Position += Direction;
            Console.WriteLine("WALL COLLISION");
        }
        else
            this.Position += Direction;
    }

Funciona, pero estoy usando una Normal escrita manualmente y quiero saber cómo calcular la normalidad de las partes superior e inferior de la pantalla.

Respuestas a la pregunta(4)

Su respuesta a la pregunta