Cómo cambiar el tamaño de la ventana usando XNA

Sé que esta pregunta se ha hecho muchas veces antes. Sin embargo, todas las soluciones que he encontrado después de más de una hora de búsqueda en Google son esencialmente lo mismo. Todos dicen que para cambiar el tamaño de una ventana en XNA, simplemente agregue las siguientes líneas de código (o una ligera variación de estas líneas de código) a su método Initiate () en la clase Game1:

    //A lot of people say that the ApplyChanges() call is not necessary,
    //and equally as many say that it is.
    graphics.IsFullScreen = false;
    graphics.PreferredBackBufferWidth = 800;
    graphics.PreferredBackBufferHeight = 600;
    graphics.ApplyChanges();

Esto no funciona para mi. El código compila, y se ejecuta, pero absolutamente nada cambia. He estado revisando la documentación de las clases GraphicsDevice y GraphicsDeviceManager, pero no he podido encontrar ninguna información que indique que necesito hacer otra cosa que no sea la anterior.

También estoy bastante seguro de que mi tarjeta gráfica es suficiente (ATI HD 5870), aunque parece que la entrada de wiki sobre la compatibilidad de la tarjeta gráfica XNA no se ha actualizado por un tiempo.

Estoy ejecutando Windows 7, con la tarjeta gráfica anterior, Visual C # 2010 Express y la última versión de XNA.

Así que solo espero que alguien pueda ayudarme a encontrar dónde estoy desordenando. Publicaré toda mi clase Game1 (lo renombré como MainApp) a continuación. Si a alguien le gustaría ver alguna de las otras clases a las que se llama, pregunte y las publicaré.

public class MainApp : Microsoft.Xna.Framework.Game
{
    GraphicsDeviceManager graphics;
    SpriteBatch spriteBatch;

    Player player;

    public MainApp()
    {
        graphics = new GraphicsDeviceManager(this);
        Content.RootDirectory = "Content";
    }

    protected override void Initialize()
    {
        player = new Player();

        //This does not do ANYTHING
        graphics.IsFullScreen = false;
        graphics.PreferredBackBufferWidth = 800;
        graphics.PreferredBackBufferHeight = 600;
        graphics.ApplyChanges();

        base.Initialize();
    }

    protected override void LoadContent()
    {
        spriteBatch = new SpriteBatch(GraphicsDevice);

        Vector2 playerPosition = new Vector2(GraphicsDevice.Viewport.TitleSafeArea.X,
                                             GraphicsDevice.Viewport.TitleSafeArea.Y
                                             + 2*(graphics.GraphicsDevice.Viewport.TitleSafeArea.Height / 3));
        player.Initialize(Content.Load<Texture2D>("basePlayerTexture"),
                          playerPosition);
    }

    protected override void UnloadContent()
    {
    }

    protected override void Update(GameTime gameTime)
    {
        if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            this.Exit();
       base.Update(gameTime);
    }

    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.CornflowerBlue);
        spriteBatch.Begin();

        player.Draw(spriteBatch);

        spriteBatch.End();

        base.Draw(gameTime);
    }
}

PD Este es mi segundo día con C #, así que si esto se debe a un error realmente estúpido, me disculpo por perder el tiempo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta