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; }