Пример #1
0
        public void UpdateCardToolTip(Point mousePos)
        {
            // See if the mouse is inside the stack of card lists
            Point relativePos         = CardView.PointFromScreen(mousePos);
            bool  mouseInsideCardList = relativePos.X > 0 && relativePos.X < CardView.ActualWidth &&
                                        relativePos.Y > 0 && relativePos.Y < CardView.ActualHeight;

            if (mouseInsideCardList)
            {
                // Determine the actual card moused over.
                var cardSize  = CardView.ActualHeight / CardList.Items.Count;
                var cardIndex = (int)(relativePos.Y / cardSize);
                if (cardIndex < 0 || cardIndex >= CardList.Items.Count)
                {
                    CardToolTip.Visibility = Visibility.Collapsed;
                    return;
                }
                CardToolTip.SetValue(
                    DataContextProperty, CardList.Items.Cast <AnimatedCard>().ElementAt(cardIndex).Card);

                // Set the top of the tooltip so it appears next to the card.
                var cardTopPos = cardSize * cardIndex;
                Canvas.SetTop(CardToolTip, cardTopPos);
                CardToolTip.Visibility = Visibility.Visible;
            }
            else
            {
                CardToolTip.Visibility = Visibility.Collapsed;
            }
        }
Пример #2
0
        public void ShowAdditionalToolTips()
        {
            if (!Config.Instance.AdditionalOverlayTooltips)
            {
                return;
            }
            var card = ToolTipCard.DataContext as Card;

            if (card == null)
            {
                return;
            }
            if (card.EntourageCardIds.Length == 0)
            {
                HideAdditionalToolTips();
                return;
            }

            StackPanelAdditionalTooltips.Children.Clear();
            foreach (var id in card.EntourageCardIds)
            {
                var tooltip = new CardToolTip();
                tooltip.SetValue(DataContextProperty, Database.GetCardFromId(id));
                StackPanelAdditionalTooltips.Children.Add(tooltip);
            }

            StackPanelAdditionalTooltips.UpdateLayout();

            //set position
            var tooltipLeft = Canvas.GetLeft(ToolTipCard);
            var left        = tooltipLeft < Width / 2 ? tooltipLeft + ToolTipCard.ActualWidth : tooltipLeft - StackPanelAdditionalTooltips.ActualWidth;

            Canvas.SetLeft(StackPanelAdditionalTooltips, left);
            var top = Canvas.GetTop(ToolTipCard) - (StackPanelAdditionalTooltips.ActualHeight / 2 - ToolTipCard.ActualHeight / 2);

            if (top < 0)
            {
                top = 0;
            }
            else if (top + StackPanelAdditionalTooltips.ActualHeight > Height)
            {
                top = Height - StackPanelAdditionalTooltips.ActualHeight;
            }
            Canvas.SetTop(StackPanelAdditionalTooltips, top);

            StackPanelAdditionalTooltips.Visibility = Visible;
        }
		public void ShowAdditionalToolTips()
		{
			if(!Config.Instance.AdditionalOverlayTooltips)
				return;
			var card = ToolTipCard.DataContext as Card;
			if(card == null)
				return;
			if(card.EntourageCardIds.Length == 0)
			{
				HideAdditionalToolTips();
				return;
			}

			StackPanelAdditionalTooltips.Children.Clear();
			foreach(var id in card.EntourageCardIds)
			{
				var tooltip = new CardToolTip();
				tooltip.SetValue(DataContextProperty, Database.GetCardFromId(id));
				StackPanelAdditionalTooltips.Children.Add(tooltip);
			}

			StackPanelAdditionalTooltips.UpdateLayout();

			//set position
			var tooltipLeft = Canvas.GetLeft(ToolTipCard);
			var left = tooltipLeft < Width / 2 ? tooltipLeft + ToolTipCard.ActualWidth : tooltipLeft - StackPanelAdditionalTooltips.ActualWidth;

			Canvas.SetLeft(StackPanelAdditionalTooltips, left);
			var top = Canvas.GetTop(ToolTipCard) - (StackPanelAdditionalTooltips.ActualHeight / 2 - ToolTipCard.ActualHeight / 2);
			if(top < 0)
				top = 0;
			else if(top + StackPanelAdditionalTooltips.ActualHeight > Height)
				top = Height - StackPanelAdditionalTooltips.ActualHeight;
			Canvas.SetTop(StackPanelAdditionalTooltips, top);

			StackPanelAdditionalTooltips.Visibility = Visible;
		}