// captures a snapshot of the given presenter to a cached bitmap private Image _captureSnapshot(ContentPresenter presenter, bool hidePresenter) { if (hidePresenter) presenter.Visibility = Visibility.Hidden; var content = presenter.Content as FrameworkElement; if (content == null) return null; // force full layout and capture snapshot presenter.ApplyTemplate(); presenter.UpdateLayout(); return new Image { Source = ImageServices.CaptureSnapshot(content) }; }
internal ContentPresenter CreateChildContentPresenter(object item) { if (item == null) return null; ContentPresenter cp = FindChildContentPresenter(item); if (cp != null) return cp; // the actual child to be added. cp.Tag is a reference to the TabItem cp = new ContentPresenter(); cp.Content = (item is TabItem) ? (item as TabItem).Content : item; cp.ContentTemplate = this.SelectedContentTemplate; cp.ContentTemplateSelector = this.SelectedContentTemplateSelector; cp.ContentStringFormat = this.SelectedContentStringFormat; cp.Visibility = System.Windows.Visibility.Collapsed; cp.Tag = (item is TabItem) ? item : (this.ItemContainerGenerator.ContainerFromItem(item)); ItemsHolderPanel.Children.Add(cp); cp.ApplyTemplate(); return cp; }