private void InitializeUpgradeButtons() { Remove(UpgradeBox); UpgradeBox = new GroupBox(Manager); Add(UpgradeBox); UpgradeBox.Init(); UpgradeBox.Left = 2; UpgradeBox.Top = infoBox.Top + infoBox.Height + 2; UpgradeBox.Width = UpgradeBox.Parent.Width - 4; UpgradeBox.Height = UpgradeBox.Parent.Height - UpgradeBox.Top - 2; UpgradeBox.Text = "Upgrades"; UpgradeBox.TextColor = Microsoft.Xna.Framework.Color.LightGray; UpgradeBox.AutoScroll = false; foreach (Button button in Buttons) { UpgradeBox.Remove(button); Remove(button); button.Visible = false; button.Invalidate(); } Buttons.Clear(); lastWidth = 0; SpriteFont cFont = Skin.Layers[0].Text.Font.Resource; UpgradeBox.Enabled = Tower.PossibleUpgrades.Count > 0; foreach (var upgrade in Tower.PossibleUpgrades) { var button = new Button(Manager); button.Init(); UpgradeBox.Add(button); Buttons.Add(button); button.Text = upgrade.Value.Name; button.Width = (int)cFont.MeasureString(button.Text).X + 15; button.Left = 6 + lastWidth; button.Top = 14; button.Tag = upgrade.Value.Key; button.Enabled = GamePlayScreen.MoneyManager.Money >= upgrade.Value.Price; button.Click += button_Click; button.ToolTip = new ToolTip(Manager) { Text = string.Format("Neuer Wert: {0}\nPreis: {1}", upgrade.Value.Value, upgrade.Value.Price) }; if (upgrade.Value.Description.Length > 0) { button.ToolTip.Text += string.Format("\nBeschreibung: {0}", upgrade.Value.Description); } lastWidth = button.Left + button.Width; } UpgradeBox.AutoScroll = true; UpgradeBox.Refresh(); }