public RoundsCardGameMainView(IEventAggregator aggregator, TestOptions test, RoundsCardGameVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <RoundsCardGameCardInformation, ts, DeckOfCardsXF <RoundsCardGameCardInformation> >(); _discardGPile = new BasePileXF <RoundsCardGameCardInformation, ts, DeckOfCardsXF <RoundsCardGameCardInformation> >(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <RoundsCardGameCardInformation, ts, DeckOfCardsXF <RoundsCardGameCardInformation> >(); _trick1 = new TwoPlayerTrickXF <EnumSuitList, RoundsCardGameCardInformation, ts, DeckOfCardsXF <RoundsCardGameCardInformation> >(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(RoundsCardGameMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. mainStack.Children.Add(otherStack); _score.AddColumn("# In Hand", true, nameof(RoundsCardGamePlayerItem.ObjectCount)); _score.AddColumn("Tricks Won", true, nameof(RoundsCardGamePlayerItem.TricksWon)); _score.AddColumn("Rounds Won", true, nameof(RoundsCardGamePlayerItem.RoundsWon)); _score.AddColumn("Points", true, nameof(RoundsCardGamePlayerItem.CurrentPoints)); _score.AddColumn("Total Score", true, nameof(RoundsCardGamePlayerItem.TotalScore)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(RoundsCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Trump", nameof(RoundsCardGameMainViewModel.TrumpSuit)); firstInfo.AddRow("Status", nameof(RoundsCardGameMainViewModel.Status)); mainStack.Children.Add(_trick1); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_score); //this is only a starting point. _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public Spades2PlayerMainView(IEventAggregator aggregator, TestOptions test, Spades2PlayerVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _score = new ScoreBoardXF(); _trick1 = new TwoPlayerTrickXF <EnumSuitList, Spades2PlayerCardInformation, ts, DeckOfCardsXF <Spades2PlayerCardInformation> >(); _playerHandWPF = new BaseHandXF <Spades2PlayerCardInformation, ts, DeckOfCardsXF <Spades2PlayerCardInformation> >(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(Spades2PlayerMainViewModel.RestoreScreen)); } ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(Spades2PlayerMainViewModel.BeginningScreen)); mainStack.Children.Add(parent); _score.AddColumn("Cards", false, nameof(Spades2PlayerPlayerItem.ObjectCount)); //very common. _score.AddColumn("Bidded", false, nameof(Spades2PlayerPlayerItem.HowManyBids)); _score.AddColumn("Won", false, nameof(Spades2PlayerPlayerItem.TricksWon)); _score.AddColumn("Bags", false, nameof(Spades2PlayerPlayerItem.Bags)); _score.AddColumn("C Score", false, nameof(Spades2PlayerPlayerItem.CurrentScore)); _score.AddColumn("T Score", false, nameof(Spades2PlayerPlayerItem.TotalScore)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(Spades2PlayerMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(Spades2PlayerMainViewModel.Status)); firstInfo.AddRow("Round", nameof(Spades2PlayerMainViewModel.RoundNumber)); mainStack.Children.Add(_trick1); parent = new ParentSingleUIContainer(nameof(Spades2PlayerMainViewModel.BiddingScreen)); mainStack.Children.Add(parent); mainStack.Children.Add(_playerHandWPF); StackLayout other = new StackLayout(); other.Orientation = StackOrientation.Horizontal; mainStack.Children.Add(other); other.Children.Add(firstInfo.GetContent); other.Children.Add(_score); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public CaliforniaJackMainView(IEventAggregator aggregator, TestOptions test, CaliforniaJackVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <CaliforniaJackCardInformation, ts, DeckOfCardsXF <CaliforniaJackCardInformation> >(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <CaliforniaJackCardInformation, ts, DeckOfCardsXF <CaliforniaJackCardInformation> >(); _trick1 = new TwoPlayerTrickXF <EnumSuitList, CaliforniaJackCardInformation, ts, DeckOfCardsXF <CaliforniaJackCardInformation> >(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(CaliforniaJackMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); mainStack.Children.Add(otherStack); _score.AddColumn("Cards Left", false, nameof(CaliforniaJackPlayerItem.ObjectCount)); //very common. _score.AddColumn("Tricks Won", true, nameof(CaliforniaJackPlayerItem.TricksWon), rightMargin: 10); _score.AddColumn("Points", true, nameof(CaliforniaJackPlayerItem.Points), rightMargin: 10); _score.AddColumn("Total Score", true, nameof(CaliforniaJackPlayerItem.TotalScore), rightMargin: 10); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(CaliforniaJackMainViewModel.NormalTurn)); firstInfo.AddRow("Trump", nameof(CaliforniaJackMainViewModel.TrumpSuit)); firstInfo.AddRow("Status", nameof(CaliforniaJackMainViewModel.Status)); mainStack.Children.Add(_trick1); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_score); _deckGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public PickelCardGameMainView(IEventAggregator aggregator, TestOptions test, PickelCardGameVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <PickelCardGameCardInformation, ts, DeckOfCardsXF <PickelCardGameCardInformation> >(); _trick1 = new TwoPlayerTrickXF <EnumSuitList, PickelCardGameCardInformation, ts, DeckOfCardsXF <PickelCardGameCardInformation> >(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(PickelCardGameMainViewModel.RestoreScreen)); } PopulateScores(_score); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(PickelCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Trump", nameof(PickelCardGameMainViewModel.TrumpSuit)); firstInfo.AddRow("Status", nameof(PickelCardGameMainViewModel.Status)); mainStack.Children.Add(_trick1); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_score); //this is only a starting point. if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public SkuckCardGameMainView(IEventAggregator aggregator, TestOptions test, SkuckCardGameVMData model, SkuckCardGameGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _gameContainer = gameContainer; _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <SkuckCardGameCardInformation, ts, DeckOfCardsXF <SkuckCardGameCardInformation> >(); _trick1 = new TwoPlayerTrickXF <EnumSuitList, SkuckCardGameCardInformation, ts, DeckOfCardsXF <SkuckCardGameCardInformation> >(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(SkuckCardGameMainViewModel.RestoreScreen)); } _score.AddColumn("Strength", false, nameof(SkuckCardGamePlayerItem.StrengthHand)); _score.AddColumn("Tie", false, nameof(SkuckCardGamePlayerItem.TieBreaker)); _score.AddColumn("Bid", false, nameof(SkuckCardGamePlayerItem.BidAmount), visiblePath: nameof(SkuckCardGamePlayerItem.BidVisible)); _score.AddColumn("Won", false, nameof(SkuckCardGamePlayerItem.TricksWon)); _score.AddColumn("Cards", false, nameof(SkuckCardGamePlayerItem.ObjectCount)); _score.AddColumn("P Rounds", false, nameof(SkuckCardGamePlayerItem.PerfectRounds)); _score.AddColumn("T Score", false, nameof(SkuckCardGamePlayerItem.TotalScore)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Round", nameof(SkuckCardGameMainViewModel.RoundNumber)); firstInfo.AddRow("Trump", nameof(SkuckCardGameMainViewModel.TrumpSuit)); //if trump is not needed, then comment. firstInfo.AddRow("Turn", nameof(SkuckCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(SkuckCardGameMainViewModel.Status)); _playerHandWPF.Divider = 1.4; StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_trick1); ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(SkuckCardGameMainViewModel.BidScreen)); otherStack.Children.Add(parent); parent = new ParentSingleUIContainer(nameof(SkuckCardGameMainViewModel.SuitScreen)); otherStack.Children.Add(parent); parent = new ParentSingleUIContainer(nameof(SkuckCardGameMainViewModel.ChoosePlayScreen)); otherStack.Children.Add(parent); mainStack.Children.Add(otherStack); mainStack.Children.Add(_playerHandWPF); otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; mainStack.Children.Add(otherStack); otherStack.Children.Add(_score); otherStack.Children.Add(firstInfo.GetContent); Grid finalGrid = new Grid(); Grid tempGrid = new Grid(); AddLeftOverRow(tempGrid, 1); AddLeftOverRow(tempGrid, 1); AddLeftOverColumn(finalGrid, 1); AddAutoColumns(finalGrid, 1); AddControlToGrid(finalGrid, mainStack, 0, 0); AddControlToGrid(finalGrid, tempGrid, 0, 1); AddControlToGrid(tempGrid, _temp1, 0, 0); AddControlToGrid(tempGrid, _temp2, 1, 0); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } GamePackageViewModelBinder.ManuelElements.Clear(); //often times i have to add manually. SkuckCardGameSaveInfo save = cons !.Resolve <SkuckCardGameSaveInfo>(); //usually needs this part for multiplayer games. _score !.LoadLists(save.PlayerList); _playerHandWPF !.LoadList(_model.PlayerHand1 !, ts.TagUsed); // i think _trick1 !.Init(_model.TrickArea1 !, ts.TagUsed); SkuckCardGamePlayerItem selfPlayer = _gameContainer.PlayerList !.GetSelf(); SkuckCardGamePlayerItem otherPlayer = _gameContainer.PlayerList.GetOnlyOpponent(); _temp1.LoadList(selfPlayer.TempHand !); _temp2.LoadList(otherPlayer.TempHand !); Content = finalGrid; }
public SixtySix2PlayerMainView(IEventAggregator aggregator, TestOptions test, SixtySix2PlayerVMData model, IGamePackageResolver resolver ) { _aggregator = aggregator; _model = model; _resolver = resolver; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <SixtySix2PlayerCardInformation, ts, DeckOfCardsXF <SixtySix2PlayerCardInformation> >(); _discardGPile = new BasePileXF <SixtySix2PlayerCardInformation, ts, DeckOfCardsXF <SixtySix2PlayerCardInformation> >(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <SixtySix2PlayerCardInformation, ts, DeckOfCardsXF <SixtySix2PlayerCardInformation> >(); _trick1 = new TwoPlayerTrickXF <EnumSuitList, SixtySix2PlayerCardInformation, ts, DeckOfCardsXF <SixtySix2PlayerCardInformation> >(); _deckStack = new StackLayout(); _marriage1 = new BaseHandXF <SixtySix2PlayerCardInformation, ts, DeckOfCardsXF <SixtySix2PlayerCardInformation> >(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(SixtySix2PlayerMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckStack); _deckStack.Children.Add(_discardGPile); // can reposition or not even have as well. otherStack.Children.Add(_trick1); mainStack.Children.Add(otherStack); _score.AddColumn("Cards Left", true, nameof(SixtySix2PlayerPlayerItem.ObjectCount)); _score.AddColumn("Tricks Won", true, nameof(SixtySix2PlayerPlayerItem.TricksWon)); _score.AddColumn("Score Round", true, nameof(SixtySix2PlayerPlayerItem.ScoreRound)); _score.AddColumn("Game Points Round", true, nameof(SixtySix2PlayerPlayerItem.GamePointsRound)); _score.AddColumn("Total Points Game", true, nameof(SixtySix2PlayerPlayerItem.GamePointsGame)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(SixtySix2PlayerMainViewModel.NormalTurn)); firstInfo.AddRow("Trump", nameof(SixtySix2PlayerMainViewModel.TrumpSuit)); firstInfo.AddRow("Status", nameof(SixtySix2PlayerMainViewModel.Status)); firstInfo.AddRow("Bonus", nameof(SixtySix2PlayerMainViewModel.BonusPoints)); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_score); otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; var thisBut = GetGamingButton("Go Out", nameof(SixtySix2PlayerMainViewModel.GoOutAsync)); otherStack.Children.Add(thisBut); thisBut = GetGamingButton("Announce Marriage", nameof(SixtySix2PlayerMainViewModel.AnnouceMarriageAsync)); otherStack.Children.Add(thisBut); mainStack.Children.Add(otherStack); mainStack.Children.Add(_guide1); mainStack.Children.Add(_marriage1); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public Pinochle2PlayerMainView(IEventAggregator aggregator, TestOptions test, Pinochle2PlayerVMData model, IGamePackageResolver resolver ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _resolver = resolver; _deckGPile = new BaseDeckXF <Pinochle2PlayerCardInformation, ts, DeckOfCardsXF <Pinochle2PlayerCardInformation> >(); _discardGPile = new BasePileXF <Pinochle2PlayerCardInformation, ts, DeckOfCardsXF <Pinochle2PlayerCardInformation> >(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <Pinochle2PlayerCardInformation, ts, DeckOfCardsXF <Pinochle2PlayerCardInformation> >(); _trick1 = new TwoPlayerTrickXF <EnumSuitList, Pinochle2PlayerCardInformation, ts, DeckOfCardsXF <Pinochle2PlayerCardInformation> >(); _guide1 = new GuideUI(); _deckStack = new StackLayout(); _yourMeld = new BaseHandXF <Pinochle2PlayerCardInformation, ts, DeckOfCardsXF <Pinochle2PlayerCardInformation> >(); _opponentMeld = new BaseHandXF <Pinochle2PlayerCardInformation, ts, DeckOfCardsXF <Pinochle2PlayerCardInformation> >(); _tempG = new TempRummySetsXF <EnumSuitList, EnumColorList, Pinochle2PlayerCardInformation, ts, DeckOfCardsXF <Pinochle2PlayerCardInformation> >(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(Pinochle2PlayerMainViewModel.RestoreScreen)); } _opponentMeld.Divider = 1.5; _yourMeld.Divider = 1.5; _tempG.Divider = 1.5; _yourMeld.HandType = HandObservable <Pinochle2PlayerCardInformation> .EnumHandList.Vertical; _opponentMeld.HandType = HandObservable <Pinochle2PlayerCardInformation> .EnumHandList.Vertical; StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckStack); _deckStack.Children.Add(_discardGPile); otherStack.Children.Add(_trick1); otherStack.Children.Add(_tempG); mainStack.Children.Add(otherStack); _score.AddColumn("Cards", false, nameof(Pinochle2PlayerPlayerItem.ObjectCount)); //very common. _score.AddColumn("T Won", false, nameof(Pinochle2PlayerPlayerItem.TricksWon)); _score.AddColumn("C Score", false, nameof(Pinochle2PlayerPlayerItem.CurrentScore)); _score.AddColumn("T Score", false, nameof(Pinochle2PlayerPlayerItem.TotalScore)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(Pinochle2PlayerMainViewModel.NormalTurn)); firstInfo.AddRow("Trump", nameof(Pinochle2PlayerMainViewModel.TrumpSuit)); firstInfo.AddRow("Status", nameof(Pinochle2PlayerMainViewModel.Status)); var endButton = GetGamingButton("End Turn", nameof(Pinochle2PlayerMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; var meldBut = GetGamingButton("Meld", nameof(Pinochle2PlayerMainViewModel.MeldAsync)); mainStack.Children.Add(_playerHandWPF); otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; StackLayout tempStack = new StackLayout(); tempStack.Children.Add(meldBut); tempStack.Children.Add(endButton); otherStack.Children.Add(tempStack); //i think this too. tempStack = new StackLayout(); tempStack.Children.Add(firstInfo.GetContent); tempStack.Children.Add(_score); otherStack.Children.Add(tempStack); otherStack.Children.Add(_yourMeld); otherStack.Children.Add(_opponentMeld); mainStack.Children.Add(otherStack); Grid finalGrid = new Grid(); AddLeftOverColumn(finalGrid, 60); AddLeftOverColumn(finalGrid, 40); // hopefully that works. AddControlToGrid(finalGrid, mainStack, 0, 0); AddControlToGrid(finalGrid, _guide1, 0, 1); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = finalGrid; }
public GalaxyCardGameMainView(IEventAggregator aggregator, TestOptions test, GalaxyCardGameVMData model, GalaxyCardGameGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _gameContainer = gameContainer; gameContainer.SaveRoot.LoadWin(this); _deckGPile = new BaseDeckXF <GalaxyCardGameCardInformation, ts, DeckOfCardsXF <GalaxyCardGameCardInformation> >(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <GalaxyCardGameCardInformation, ts, DeckOfCardsXF <GalaxyCardGameCardInformation> >(); _trick1 = new TwoPlayerTrickXF <EnumSuitList, GalaxyCardGameCardInformation, ts, DeckOfCardsXF <GalaxyCardGameCardInformation> >(); _nextCard = new DeckOfCardsXF <GalaxyCardGameCardInformation>(); _planetStack = new StackLayout(); _moonGrid = new Grid(); _planetStack.Orientation = StackOrientation.Horizontal; AddLeftOverColumn(_moonGrid, 50); AddLeftOverColumn(_moonGrid, 50); AddAutoRows(_moonGrid, 1); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(GalaxyCardGameMainViewModel.RestoreScreen)); } _score.AddColumn("Cards Left", false, nameof(GalaxyCardGamePlayerItem.ObjectCount)); //very common. SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(GalaxyCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(GalaxyCardGameMainViewModel.Status)); var endButton = GetGamingButton("End Turn", nameof(GalaxyCardGameMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; endButton.VerticalOptions = LayoutOptions.Start; StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_trick1); otherStack.Children.Add(_nextCard); otherStack.Children.Add(_deckGPile); mainStack.Children.Add(otherStack); mainStack.Children.Add(_moonGrid); otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_playerHandWPF); //StackLayout finalStack = new StackLayout(); //finalStack.Children.Add(firstInfo.GetContent); var thisBut = GetSmallerButton("Create New Moon", nameof(GalaxyCardGameMainViewModel.MoonAsync)); thisBut.HorizontalOptions = LayoutOptions.Start; thisBut.VerticalOptions = LayoutOptions.Start; otherStack.Children.Add(endButton); otherStack.Children.Add(thisBut); //otherStack.Children.Add(finalStack); mainStack.Children.Add(otherStack); otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_planetStack); otherStack.Children.Add(_score); otherStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(otherStack); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _deckGPile.VerticalOptions = LayoutOptions.Start; if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }