// UI Builders /// <summary> build the UI </summary> protected virtual void InitializeUI() { // Background Images BitmapImage[] backgroundImages = new BitmapImage[] { _cache.Cache("red.png"), _cache.Cache("blue.png") }; // Add Cards and Handlers double leftMargin = 20.0; int backgroundCount = backgroundImages.Length; CardFlippedEventHandler flipHandler = new CardFlippedEventHandler(Card_Flipped); for (int i = 0; i < _numCards; ++i) { BitmapImage back = backgroundImages[i % backgroundCount]; CardUserControl card = new CardUserControl(back); card.OnFlip += flipHandler; card.Margin = new Thickness(leftMargin, 0, 0, 0); card.HorizontalAlignment = HorizontalAlignment.Left; card.Tag = i; leftMargin += card.Width; grid.Children.Add(card); _cards.Add(card); } // Adjust Window size Width = leftMargin + 40.0; ResetUI(); }
/// <summary> handles a card being flipped. </summary> /// <param name="sender"> the card that was clicked </param> protected virtual void Card_Flipped(CardUserControl sender) { if (_isMyTurn) { _chooseCell.Value = (int)sender.Tag; } }