Como redimensionar janela usando XNA

Eu sei que esta pergunta foi feita muitas vezes antes. No entanto, todas as soluções que encontrei após mais de uma hora pesquisando são essencialmente a mesma coisa. Todos dizem que, para redimensionar uma janela no XNA, basta adicionar as seguintes linhas de código (ou alguma pequena variação dessas linhas de código) ao seu método Initiate () na classe 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();

Isso não funciona para mim. O código compila e executa, mas absolutamente nada muda. Eu tenho vasculhado a documentação das classes GraphicsDevice e GraphicsDeviceManager, mas não consegui encontrar nenhuma informação indicando que eu precise fazer algo diferente do acima.

Eu também estou bastante certo de que minha placa gráfica é suficiente (ATI HD 5870), embora pareça que a entrada do wiki na compatibilidade da placa gráfica XNA não tenha sido atualizada por algum tempo.

Estou executando no Windows 7, com a placa gráfica acima, Visual C # 2010 Express e a versão mais recente do XNA.

Então eu só estou esperando que alguém possa me ajudar a encontrar onde estou bagunçando. Vou postar toda a minha classe Game1 (eu renomei MainApp) abaixo. Se alguém quiser ver qualquer uma das outras classes que são chamadas, peça e eu as postarei.

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);
    }
}

P.S. Este é o meu segundo dia com C #, então se isso é devido a um erro realmente estúpido peço desculpas por desperdiçar seu tempo.

questionAnswers(2)

yourAnswerToTheQuestion