public void Init() { isClosing = false; MainDockPanel.Children.Clear(); var gameNames = (GameName[])Enum.GetValues(typeof(GameName)); var games = new List <ActiveGameData>(); foreach (var gameName in gameNames) { var activeGameData = new ActiveGameData { EnumValue = gameName, GameName = gameName.ToString(), GameDescription = GameList.GetGameDescription(gameName), GameIcon = GameList.GetGameIcon(gameName), GameCustomControl = GameList.GetGameControls(gameName) }; games.Add(activeGameData); } foreach (var game in games) { #region Generate Elements var sp = new StackPanel { Name = $"{game.GameName}_StackPanel", Width = 80, Height = 90 }; var lb = new Label { Content = game.GameName, HorizontalAlignment = HorizontalAlignment.Center }; var imgBrush = new ImageBrush { ImageSource = ImageExtensions.BitmapToImageSource(game.GameIcon) }; var btn = new Button { Height = 64, Width = 64, Background = imgBrush }; #endregion btn.Click += (sender, args) => LoadGame(game); sp.Children.Add(lb); sp.Children.Add(btn); MainDockPanel.Children.Add(sp); } }
/// <summary> /// Used to load in custom controls for games. Games can have their own custom UserControls to load in here. /// </summary> /// <param name="gameName"> Enum specifying which game is active. </param> public void SetCustomGameControls(GameName gameName = GameName.None) { CustomControlArea.Content = GameList.GetGameControls(gameName); DescriptionTextBlock.Text = GameList.GetGameDescription(gameName); SetStartButton(gameName); }