Exemplo n.º 1
0
        private static PrintCapabilities ScaleToFit1Page(ContentPresenter content,
            PrintDialog dlg, out double scale, double printScaleOffset)
        {
            var prCaps = dlg.PrintQueue.GetPrintCapabilities(dlg.PrintTicket);

            //get scale of the print wrt to screen of WPF visual
            scale = Math.Min(prCaps.PageImageableArea.ExtentWidth
                / content.ActualWidth, prCaps.PageImageableArea.ExtentHeight /
                    content.ActualHeight);

            scale += printScaleOffset;

            //Transform the Visual to scale
            content.LayoutTransform = new ScaleTransform(scale, scale);

            //get the size of the printer page
            Size sz = new Size(prCaps.PageImageableArea.ExtentWidth, prCaps.PageImageableArea.ExtentHeight);

            //update the layout of the visual to the printer page size.
            content.Measure(sz);
            content.Arrange(new Rect(new Point(prCaps.PageImageableArea.OriginWidth, prCaps.PageImageableArea.OriginHeight), sz));

            return prCaps;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
		public void VisualTreeTest4 ()
		{
			ContentPresenter presenter = new ContentPresenter ();
			CreateAsyncTest (presenter, () => {
				presenter.Content = new Rectangle ();

				Assert.VisualChildren (presenter, "#1"); // No visual children
				presenter.Measure (Size.Empty);
				Assert.VisualChildren (presenter, "#2",
					new VisualNode<Rectangle> ("#a")
				);

				// Changing the template unsets the visual child until the next Measure pass
				presenter.ContentTemplate = new DataTemplate ();
				Assert.VisualChildren (presenter, "#3"); // No visual children

				presenter.Measure (Size.Empty);
				Assert.VisualChildren (presenter, "#4");
				Assert.IsNull (presenter.DataContext, "#5");
			});
		}
Exemplo n.º 4
0
		public void VisualTreeTest2 ()
		{
			ContentPresenter presenter = new ContentPresenter ();
			presenter.Content = "I'm a string";

			Assert.VisualChildren (presenter, "#1"); // No visual children
			presenter.Measure (Size.Empty);
			Assert.VisualChildren (presenter, "#2",
				new VisualNode<Grid> ("#a",
					new VisualNode<TextBlock> ("#b")
				)
			);

			CreateAsyncTest (presenter, () => {
				Assert.VisualChildren (presenter, "#3",
					new VisualNode<Grid> ("#c", 
						new VisualNode<TextBlock> ("#d")
					)
				);
			});
		}
Exemplo n.º 5
0
		public void VisualTreeTest ()
		{
			ContentPresenter presenter = new ContentPresenter ();
			presenter.Content = new Rectangle ();

			Assert.VisualChildren (presenter, "#1"); // No visual children
			presenter.Measure (Size.Empty);
			Assert.VisualChildren (presenter, "#2",
				new VisualNode<Rectangle> ("#a", (VisualNode [])null)
			);

			CreateAsyncTest (presenter, () => {
				Assert.VisualChildren (presenter, "#3",
					new VisualNode<Rectangle> ("#b", (VisualNode [ ]) null)
				);
			});
		}
Exemplo n.º 6
0
		public void DefaultTemplate_FindName ()
		{
			ContentPresenter presenter = new ContentPresenter { Content = "Content" };
			presenter.Measure(Size.Empty);

			Grid grid = null;
			Assert.VisualChildren(presenter, "#1",
				new VisualNode<Grid>("#a", g => grid = g,
					new VisualNode<TextBlock>("#b")
				)
			);

			var child = (TextBlock) grid.Children[0];
			child.Name = "TestName";
			Assert.IsNull(child.FindName("TestName"), "#2");
			Assert.IsNull(grid.FindName("TestName"), "#3");
			Assert.IsNull(presenter.FindName("TestName"), "#4");

			grid.Children.Clear();
			TestPanel.Children.Add(child);
			Assert.IsNull(TestPanel.FindName("TestName"), "#5");
		}
Exemplo n.º 7
0
 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));
 }