# Window Configuration Beginner Properties of the game's window can be controled through code. Currently, this cannot be configured in Game Studio, so a simple alternative is to have a [`Startup Script`](../scripts/types-of-script#startup-scripts) in the root scene of your project, that changes values of `Game.Window`. > [!Note] > The best solution would be to change these properties before the window is opened, by overriding the `Game` class, but this is outside of the scope of this page. ```csharp using Stride.Engine; namespace MyGame { public class WindowSetupScript : StartupScript { public override void Start() { // Set window properties here // Example Game.Window.IsBorderLess = true; } } } ``` ## Making the window resizable To allow for window resizing, set `AllowUserResizing` to `true`. ```csharp Game.Window.AllowUserResizing = true ``` ## Fullscreen To enter fullscreen mode, set `IsFullscreen` to `true`. ```csharp Game.Window.IsFullscreen = true ``` By default, Stride uses **exclusive fullscreen**. This can be changed to **borderless fullscreen** by setting `FullscreenIsBorderlessWindow` to `true`. ```csharp Game.Window.FullscreenIsBorderlessWindow = true; ``` The main difference between these two fullscreen modes is that **exclusive fullscreen** renders the game directly to the screen, while **borderless fullscreen** resizes the window to take up the entire display. > [!Note] > **Exclusive fullscreen** can slightly improve performence, but is generally disliked by most players due to making switching between different applications slower and more cumbersome. ## Resolution Resolution can be set using the `SetSize` method and read using the `ClientBounds` property. ```csharp // Setting the window size to 1920x1080 Game.Window.SetSize(new Int2(1920, 1080)); // Reading window size and position var newBounds = Game.Window.ClientBounds; ``` The size of the entire screen can be found in `Game.GraphicsDevice`. ```csharp // List of all connected displays var monitors = Game.GraphicsDevice.Outputs; // Reading the size and position of the first connected display var bounds = monitors[0].DesktopBounds; ``` Each output also contains a list of supported display modes for the monitor. This is useful for **creating a resolution dropdown** in a settings menu of your game. ```csharp var supportedDisplayModes = monitors[0].SupportedDisplayModes; // Create a list of avaliable resolutions var resolutions = new List(); foreach (var mode in supportedDisplayModes) { var res = new Int2(mode.Width, mode.Height); if (!resolutions.Contains(res)) resolutions.Add(res); } ``` ## Title The window title can be changed using the `Title` property. ```csharp Game.Window.Title = "My Title Here"; ``` ## Other window properties Here are other miscellaneous window properties. ```csharp // Changes window opacity Game.Window.Opacity = 0.6f; // Removes window borders Game.Window.IsBorderless = true; // Changes mouse visibility Game.Window.IsMouseVisible = false; // Changes the position of the window Game.Window.Position = new Int2(50, 50); // True when the window has focus var hasFocus = Game.Window.IsFocused; // True when the window is minimized var minimized = Game.Window.IsMinimized; ```