Jak zmienić rozmiar okna za pomocą XNA

Wiem, że to pytanie było już wielokrotnie zadawane. Jednak wszystkie rozwiązania, które znalazłem po ponad godzinie gogli, są zasadniczo tym samym. Wszyscy mówią, że aby zmienić rozmiar okna w XNA, wystarczy dodać następujące wiersze kodu (lub nieco niewielką odmianę tych linii kodu) do metody Initiate () w klasie 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();

To nie działa dla mnie. Kod kompiluje się i działa, ale absolutnie nic się nie zmienia. Przeszukiwałem dokumentację klas GraphicsDevice i GraphicsDeviceManager, ale nie udało mi się znaleźć żadnych informacji wskazujących, że muszę zrobić coś innego niż powyższe.

Jestem też całkiem pewien, że moja karta graficzna jest wystarczająca (ATI HD 5870), chociaż wydaje się, że wpis wiki na kompatybilności kart graficznych XNA nie był od dawna aktualizowany.

Pracuję na Windows 7, z powyższą kartą graficzną, Visual C # 2010 Express i najnowszą wersją XNA.

Mam więc nadzieję, że ktoś może mi pomóc znaleźć miejsce, w którym się bawię. Poniżej zamieszczę całą moją klasę Game1 (przemianowałem ją na MainApp). Jeśli ktokolwiek chciałby zobaczyć jakąkolwiek inną klasę, na którą jest wywoływany, zapytaj, a opublikuję.

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. To jest mój drugi dzień z C #, więc jeśli jest to spowodowane naprawdę głupim błędem, przepraszam za marnowanie czasu.

questionAnswers(2)

yourAnswerToTheQuestion