static void Layout_ElementRemoved(object sender, LayoutElementEventArgs e) { LayoutDocument layoutDoc = e.Element as LayoutDocument; var floating = e.Element as LayoutDocumentFloatingWindow; var layoutPanel = e.Element as LayoutDocumentPane; if (layoutDoc != null) { var frame = layoutDoc.Content as Frame; if (layoutDoc.ContentId == "CodeRemoval") { if (TaskbarManager.Instance.TabbedThumbnail.IsThumbnailPreviewAdded(frame)) { ThumbnailButtonsHelper.RemoveButtons(TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview(frame)); } //Tab closed from preview -> clean frame handlers frame.ContentRendered -= frame_ContentRendered; CloseTab(frame); return; } if (frame != null) { RemovePreview(frame); } } else if (floating != null) { return; } else if (layoutPanel != null) { return; } }
private static void CreateContentPreview(UIElement content) { if (!_initialized) { throw new Exception("Not initialized"); } //if (_previewOffset.X == 0.0 && _previewOffset.Y == 0.0) //probably not calculated yet // _previewOffset = SetThumbnailOffset((Frame) content); var offset = SetThumbnailOffset((Frame)content); TabbedThumbnail thumbnail = new TabbedThumbnail(ParentWindow, content, offset); if (!TaskbarManager.Instance.TabbedThumbnail.IsThumbnailPreviewAdded(thumbnail)) //only once { thumbnail.TabbedThumbnailActivated += new EventHandler <TabbedThumbnailEventArgs>(thumbnail_TabbedThumbnailActivated); thumbnail.TabbedThumbnailClosed += new EventHandler <TabbedThumbnailClosedEventArgs>(thumbnail_TabbedThumbnailClosed); thumbnail.TabbedThumbnailMaximized += new EventHandler <TabbedThumbnailEventArgs>(thumbnail_TabbedThumbnailMaximized); thumbnail.TabbedThumbnailMinimized += new EventHandler <TabbedThumbnailEventArgs>(thumbnail_TabbedThumbnailMinimized); thumbnail.DisplayFrameAroundBitmap = false; thumbnail.ClippingRectangle = new Rectangle(100, 100, 100, 100); //NOTE: ADDING TOOLBAR BUTTON, DOES NOT WORK WHILE DEBUGGING. USUALLY. TaskbarManager.Instance.TabbedThumbnail.AddThumbnailPreview(thumbnail); ThumbnailButtonsHelper.AddTaskbarButtons(content); ThumbnailButtonsHelper.UpdateButtonStatus((Frame)content); //Called when using history (it fires even when tab is not active, frame_contentRendered doesn't) ((Frame)content).LoadCompleted += (sender, args) => { var frame = sender as Frame; RefreshPreview(frame); ReorderAllPreviews(); ThumbnailButtonsHelper.UpdateButtonStatus(frame); }; } }
private static void RemovePreview(UIElement content) { if (content != null) { if (TaskbarManager.Instance.TabbedThumbnail.IsThumbnailPreviewAdded(content)) { //Clean it var preview = TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview(content); ((Frame)content).ContentRendered -= frame_ContentRendered; ThumbnailButtonsHelper.RemoveButtons(preview); TaskbarManager.Instance.TabbedThumbnail.RemoveThumbnailPreview(preview); preview.TabbedThumbnailActivated -= thumbnail_TabbedThumbnailActivated; preview.TabbedThumbnailClosed -= thumbnail_TabbedThumbnailClosed; preview.TabbedThumbnailMaximized -= thumbnail_TabbedThumbnailMaximized; preview.TabbedThumbnailMinimized -= thumbnail_TabbedThumbnailMinimized; preview.Dispose(); preview = null; } } }