//private void adjust buttons size and position private void AdjustButtonsProperties() { CardImageSourceObtainer obtainer = new CardImageSourceObtainer(); for (int i = 0; i < currentCards.Count; i++) { double height; double width; (height, width) = EstimateCardHeightAndWidth(false); (ControlGrid.Children[i] as MyButton).Height = height; (ControlGrid.Children[i] as MyButton).Width = width; //(ControlGrid.Children[i] as MyButton).Picture = GetCardsPNGNameAsString(currentCards[i]); (ControlGrid.Children[i] as MyButton).CardImage = obtainer.GetImageSource(currentCards[i]); (ControlGrid.Children[i] as MyButton).Card = currentCards[i]; (ControlGrid.Children[i] as MyButton).StringRepresentation = currentCards[i].ToString(); //margins and position if (i < currentCards.Count - 1) { (ControlGrid.Children[i] as MyButton).HorizontalAlignment = HorizontalAlignment.Left; double leftDstance = Distance(i, ControlGrid.Children.Count, false); (ControlGrid.Children[i] as MyButton).Margin = new Thickness(leftDstance, 0, 0, 0); } else { (ControlGrid.Children[i] as MyButton).HorizontalAlignment = HorizontalAlignment.Right; double rightDistance = Distance(i, ControlGrid.Children.Count, false); (ControlGrid.Children[i] as MyButton).Margin = new Thickness(0, 0, rightDistance, 0); } } }
//method for adding green highlight of first card private void AddGreenCard() { CardImageSourceObtainer obtainer = new CardImageSourceObtainer(); MyButton myButton = new MyButton(); (myButton.Height, myButton.Width) = EstimateCardHeightAndWidth(false); myButton.HorizontalAlignment = HorizontalAlignment.Center; myButton.VerticalAlignment = VerticalAlignment.Center; myButton.CardImage = obtainer.GetGreenHighlight(); myButton.Margin = new Thickness(0); myButton.Visibility = Visibility.Collapsed; GreenCard.Children.Add(myButton); }
private void AssignCardsPictures() { CardImageSourceObtainer obtainer = new CardImageSourceObtainer(); try { CardOfSpades.Source = obtainer.GetImageSource(rank, CardSuits.Spade); CardOfHearths.Source = obtainer.GetImageSource(rank, CardSuits.Heart); CardOfClubs.Source = obtainer.GetImageSource(rank, CardSuits.Club); CardOfDiamonds.Source = obtainer.GetImageSource(rank, CardSuits.Diamond); } catch (Exception ex) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Error($"Error while trying to assign cards pictures of {rank.ToString()}: {ex.Message}."); } }
//assigning image in loop private void AssignImages() { CardImageSourceObtainer obtainer = new CardImageSourceObtainer(); if (ControlGrid.Children.Count != currentCards.Count) { throw new InvalidOperationException("Amount of cards in control and in" + " internal list is not equal while asigning images to cards"); } for (int i = 0; i < ControlGrid.Children.Count; i++) { if (currentCards[i].Rank == CardRanks.Joker) { (ControlGrid.Children[i] as MyButton).CardImage = obtainer.GetImageSource(CardRanks.Joker, CardSuits.None); } else { (ControlGrid.Children[i] as MyButton).CardImage = obtainer.GetImageSource(currentCards[i]); } } }
//method for adding one item to wrap panel private void PopulateWrapPanelWithSingleSuit(CardSuits suit, CardRanks rank) { CardImageSourceObtainer obtainer = new CardImageSourceObtainer(); WrapPanelSelectableItem button = new WrapPanelSelectableItem() { Height = 120, Width = 100, VerticalAlignment = VerticalAlignment.Top, HorizontalAlignment = HorizontalAlignment.Left, Margin = new Thickness(0), ItemSelected = Visibility.Collapsed, ItemHoovered = Visibility.Collapsed, ImageSource = obtainer.GetImageSource(rank, suit), Tag = rank, }; button.MouseEnter += Button_MouseEnter; button.MouseLeave += Button_MouseLeave; button.Click += Button_Click; DemandedRankWrapPanel.Children.Add(button); }
//method for adding one item to suit wrap panel private void AddSingleItemToRankWrapPanel(CardRanks rank) { CardImageSourceObtainer obtainer = new CardImageSourceObtainer(); WrapPanelSelectableItem button = new WrapPanelSelectableItem { Height = 120, Width = 100, VerticalAlignment = VerticalAlignment.Top, HorizontalAlignment = HorizontalAlignment.Left, Margin = new Thickness(0), ItemSelected = Visibility.Collapsed, ItemHoovered = Visibility.Collapsed, ImageSource = obtainer.GetImageSource(rank, thisSuit), Tag = rank, }; //mouse enter and leave event button.MouseEnter += RankButton_MouseEnter; button.MouseLeave += RankButton_MouseLeave; button.Click += RankButton_Click; RankWrapPanel.Children.Add(button); }
//method for assigning Cards PNGs private void AssignPictures(int firstCardNumberInList = 0) { numberOfFirstCard = firstCardNumberInList; CardImageSourceObtainer obtainer = new CardImageSourceObtainer(); //showing and hiding green highlight - first card if (numberOfFirstCard == 0) { GreenCard.Children[0].Visibility = Visibility.Visible; } else { GreenCard.Children[0].Visibility = Visibility.Collapsed; } //first card if (FirstCard.Children.Count > 0) { (FirstCard.Children[0] as MyButton).CardImage = obtainer.GetImageSource(currentCards[firstCardNumberInList]); //GetOnePNGString(currentCards[firstCardNumberInList]); } //second card if (SecondCard.Children.Count > 0) { (SecondCard.Children[0] as MyButton).CardImage = obtainer.GetImageSource(currentCards[firstCardNumberInList + 1]); } //third card if (ThirdCard.Children.Count > 0) { (ThirdCard.Children[0] as MyButton).CardImage = obtainer.GetImageSource(currentCards[firstCardNumberInList + 2]); } //fourth card if (FourthCard.Children.Count > 0) { (FourthCard.Children[0] as MyButton).CardImage = obtainer.GetImageSource(currentCards[firstCardNumberInList + 3]); } //fifth card if (FifthCard.Children.Count > 0) { (FifthCard.Children[0] as MyButton).CardImage = obtainer.GetImageSource(currentCards[firstCardNumberInList + 4]); } //sixth card if (SixthCard.Children.Count > 0) { (SixthCard.Children[0] as MyButton).CardImage = obtainer.GetImageSource(currentCards[firstCardNumberInList + 5]); } //seventh card if (SeventhCard.Children.Count > 0) { (SeventhCard.Children[0] as MyButton).CardImage = obtainer.GetImageSource(currentCards[firstCardNumberInList + 6]); } //eight card if (EightCard.Children.Count > 0) { (EightCard.Children[0] as MyButton).CardImage = obtainer.GetImageSource(currentCards[firstCardNumberInList + 7]); if (currentCards.Count == 8 || currentCards.Count == firstCardNumberInList + 8) { LastCardShader.Visibility = Visibility.Collapsed; } else { LastCardShader.Visibility = Visibility.Visible; } } else { LastCardShader.Visibility = Visibility.Collapsed; } }