Layered Forms
Introduction
Layers and Update
var button = new Button();
button.AddToRoot();public class Game1 : Game
{
private GraphicsDeviceManager _graphics;
GumService GumUI => GumService.Default;
StackPanel layeredStackPanel;
List<GraphicalUiElement> itemsToUpdate;
public Game1()
{
_graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
IsMouseVisible = true;
}
protected override void Initialize()
{
GumUI.Initialize(this);
var unlayeredStackPanel = new StackPanel();
unlayeredStackPanel.AddToRoot();
for(int i = 0; i < 3; i++)
{
var button = new Button();
unlayeredStackPanel.AddChild(button);
button.Text = "Button " + i;
}
// 1
var layer = GumUI.SystemManagers.Renderer.AddLayer();
// 2
var layerCameraSettings = new LayerCameraSettings();
layerCameraSettings.Zoom = 2;
layer.LayerCameraSettings = layerCameraSettings;
// 3
layeredStackPanel = new StackPanel();
layeredStackPanel.X = 100;
// 4
layeredStackPanel.Visual.AddToManagers(GumUI.SystemManagers, layer);
for (int i = 0; i < 3; i++)
{
var button = new Button();
layeredStackPanel.AddChild(button);
button.Text = "Button " + i;
}
// 5
itemsToUpdate = new()
{
GumUI.Root,
layeredStackPanel.Visual
};
base.Initialize();
}
protected override void Update(GameTime gameTime)
{
// 6
GumUI.Update(gameTime, itemsToUpdate);
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
GumUI.Draw();
base.Draw(gameTime);
}
}

Last updated
Was this helpful?

