private static void ResetVisualState(ContentPresenter objectToPrint, PrintCapabilities printCaps) { objectToPrint.Width = double.NaN; objectToPrint.UpdateLayout(); objectToPrint.LayoutTransform = new ScaleTransform(1, 1); Size size = new Size(printCaps.PageImageableArea.ExtentWidth, printCaps.PageImageableArea.ExtentHeight); objectToPrint.Measure(size); objectToPrint.Arrange(new Rect(new Point(printCaps.PageImageableArea.OriginWidth, printCaps.PageImageableArea.OriginHeight), size)); }
private static void ResetVisualState(ContentPresenter objectToPrint, PrintCapabilities printCaps, bool wasVirtualized) { objectToPrint.Width = double.NaN; objectToPrint.UpdateLayout(); objectToPrint.LayoutTransform = new ScaleTransform(1, 1); Size size = new Size(printCaps.PageImageableArea.ExtentWidth, printCaps.PageImageableArea.ExtentHeight); objectToPrint.Measure(size); objectToPrint.Arrange(new Rect(new Point(printCaps.PageImageableArea.OriginWidth, printCaps.PageImageableArea.OriginHeight), size)); if (!wasVirtualized) return; var dg = objectToPrint.FindChild<DataGrid>(); dg.EnableRowVirtualization = true; dg.EnableColumnVirtualization = true; VirtualizingPanel.SetIsVirtualizing(dg, true); }
protected override void OnItemsChanged(NotifyCollectionChangedEventArgs e) { base.OnItemsChanged(e); switch (e.Action) { case NotifyCollectionChangedAction.Add: case NotifyCollectionChangedAction.Reset: case NotifyCollectionChangedAction.Replace: // fixup all items default width UpdateItemWidth(); UpdateItemHeight(); break; case NotifyCollectionChangedAction.Remove: break; } // reset headers UIElementCollection Headers = HeadersPanel.Children; Headers.Clear(); foreach (PivotItem item in Items) { ContentPresenter ctrl = new ContentPresenter(); ctrl.Content = item.Header; ctrl.ContentTemplate = this.UnselectedHeaderTemplate; ctrl.UpdateLayout(); Headers.Add(ctrl); } // invalidate the control if (null != ScrollView) ScrollView.Invalidate(); // first inserted ? if ((SelectedIndex < 0) && (Items.Count > 0)) SelectedIndex = 0; // invalid selected item ? if (!Items.Contains(SelectedItem) && (Items.Count > 0)) SelectedIndex = 0; }
// 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) }; }