private void tlMainTabs_TabPointerEntered(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e) { TabViewModel tvm = null; if (sender is FrameworkElement) { var fe = (FrameworkElement)sender; if (fe.DataContext is TabViewModel) { tvm = (TabViewModel)fe.DataContext; } else { return; } var visual = fe.TransformToVisual(layoutRoot); var point1 = visual.TransformPoint(new Point(0, 0)); var point2 = new Point(point1.X + fe.ActualWidth + 180, point1.Y + fe.ActualHeight + 140); //hide all the current tabs in the canvas _spriteBatch.Elements.ToList().ForEach(delegate(IVisualTreeElement element) { element.IsVisible = false; }); //now delete all the relevant elements in the spritebatch _spriteBatch.DeleteAll(); //create the new thumbnail sprite for current button _spriteBatch.Add(new TabThumbnailSprite() { Layout = new Rect(point1, point2), ID = const_TabPreview, TextureBackgroundUri = tvm.ThumbUri, IsVisible = true }); _spriteBatch.IsVisible = true; } CanvasInvalidate(); }