Пример #1
0
        public void ClippingPanelTest()
        {
            var mine = new UserControlPoker()
            {
                Width = 30, Height = 30
            };
            var content = new PanelPoker()
            {
                Width = 50, Height = 50
            };

            mine.SetContent(content);

            content.Measured += (Size result) => {
                content.MeasureResult = new Size(0, 0);
            };

            content.Arranged += (Size result) => {
                content.ArrangeResult = content.ArrangeArg;
            };

            CreateAsyncTest(mine, () => {
                Assert.AreEqual(new Size(30, 30), mine.MeasureArg, "MeasureArg");
                Assert.AreEqual(new Size(30, 30), mine.MeasureResult, "MeasureResult");
                Assert.AreEqual(new Size(30, 30), mine.DesiredSize, "parent Desired");
                Assert.AreEqual(new Size(30, 30), content.DesiredSize, "content desired");

                Assert.AreEqual(new Size(30, 30), mine.ArrangeArg, "ArrangeArg");
                Assert.AreEqual(new Size(30, 30), mine.ArrangeResult, "ArrangeArg");
                Assert.AreEqual(new Size(50, 50), new Size(content.ActualWidth, content.ActualHeight), "content actual");
                Assert.AreEqual(new Size(30, 30), mine.RenderSize, "parent rendersize");
                Assert.AreEqual(new Size(50, 50), content.RenderSize, "content rendersize");
                Assert.AreEqual(new Rect(0, 0, 30, 30), LayoutInformation.GetLayoutSlot(content), "content slot");
                Assert.IsNotNull(LayoutInformation.GetLayoutClip(content), "clip");

                RectangleGeometry rect = LayoutInformation.GetLayoutClip(content) as RectangleGeometry;
                Assert.IsNotNull(rect);

                Assert.AreEqual(LayoutInformation.GetLayoutSlot(content), rect.Rect, "clip == slot");
            }
                            );
        }
Пример #2
0
		public void StarRows3b ()
		{
			var canvas = new Canvas { Width = 120, Height = 120 };
			PanelPoker poker = new PanelPoker ();
			MyGrid grid = new MyGrid ();
			grid.AddRows (Star, Star, Star);
			grid.AddColumns (Star, Star, Star);

			canvas.Children.Add (poker);
			poker.Grid = grid;
			grid.AddChild (new MyContentControl (100, 100), 1, 1, 1, 1);

			CreateAsyncTest (canvas,
				() => { },
				() => {
					Assert.AreEqual (Infinity, poker.MeasureArgs [0], "#1");
					Assert.AreEqual (new Size (100, 100), poker.MeasureResults [0], "#2");
					Assert.AreEqual (new Size (100, 100), poker.ArrangeArgs [0], "#3");
					Assert.AreEqual (new Size (100, 100), poker.ArrangeResults [0], "#4");

					grid.CheckRowHeights ("#5", 0, 100, 0);
					grid.CheckColWidths ("#6", 0, 100, 0);

					grid.CheckMeasureArgs ("#7", Infinity);
					grid.CheckMeasureResult ("#8", new Size (100, 100));

					grid.CheckArrangeArgs ("#9", new Size (100, 100));
					grid.CheckArrangeResult ("#10", new Size (100, 100));
				}
			);
		}
Пример #3
0
		public void ExpandStars_FixedSize ()
		{
			// If a width/height is set on the grid, it expands stars.
			var canvas = new Canvas { Width = 120, Height = 120 };
			PanelPoker poker = new PanelPoker { Width = 120, Height = 120 };
			MyGrid grid = new MyGrid { Name = "Griddy" };
			grid.AddRows (Star, Star, Star);
			grid.AddColumns (Star, Star, Star);

			canvas.Children.Add (poker);
			poker.Grid = grid;
			grid.AddChild (new MyContentControl (100, 100), 1, 1, 1, 1);

			CreateAsyncTest (canvas,
				() => {
					Assert.AreEqual (new Size (120, 120), poker.MeasureArgs [0], "#1");
					Assert.AreEqual (new Size (40, 40), poker.MeasureResults [0], "#2");
					Assert.AreEqual (new Size (120, 120), poker.ArrangeArgs [0], "#3");
					Assert.AreEqual (new Size (120, 120), poker.ArrangeResults [0], "#4");

					grid.CheckRowHeights ("#5", 40, 40, 40);
					grid.CheckColWidths ("#6", 40, 40, 40);

					grid.CheckMeasureArgs ("#7", new Size (40, 40));
					grid.CheckMeasureResult ("#8", new Size (40, 40));

					grid.CheckArrangeArgs ("#9", new Size (40, 40));
					grid.CheckArrangeResult ("#10", new Size (40, 40));
				}
			);
		}
Пример #4
0
		public void ExpandStars_UnfixedSize ()
		{
			// If a width/height is *not* set on the grid, it doesn't expand stars.
			var canvas = new Canvas { Width = 120, Height = 120 };
			PanelPoker poker = new PanelPoker ();
			MyGrid grid = new MyGrid { Name = "TEDDY" };
			grid.AddRows (Star, Star, Star);
			grid.AddColumns (Star, Star, Star);

			canvas.Children.Add (poker);
			poker.Grid = grid;
			grid.AddChild (new MyContentControl (100, 100), 1, 1, 1, 1);

			CreateAsyncTest (canvas,
				() => {
					Assert.AreEqual (Infinity, poker.MeasureArgs [0], "#1");
					Assert.AreEqual (new Size (100, 100), poker.MeasureResults [0], "#2");
					Assert.AreEqual (new Size (100, 100), poker.ArrangeArgs [0], "#3");
					Assert.AreEqual (new Size (100, 100), poker.ArrangeResults [0], "#4");

					grid.CheckRowHeights ("#5", 0, 100, 0);
					grid.CheckColWidths ("#6", 0, 100, 0);

					grid.CheckMeasureArgs ("#7", Infinity);
					grid.CheckMeasureResult ("#8", new Size (100, 100));

					grid.CheckArrangeArgs ("#9", new Size (100, 100));
					grid.CheckArrangeResult ("#10", new Size (100, 100));

					// Do not expand if we already consume 100 px
					grid.Reset ();
					grid.Arrange (new Rect (0, 0, 100, 100));
					grid.CheckArrangeArgs ("#11");

					// If we give extra space, we expand the rows.
					grid.Arrange (new Rect (0, 0, 500, 500));

					grid.CheckRowHeights ("#12", 167, 167, 166);
					grid.CheckColWidths ("#13", 167, 167, 166);

					grid.CheckArrangeArgs ("#14", new Size (167, 167));
					grid.CheckArrangeResult ("#15", new Size (167, 167));
				}
			);
		}
Пример #5
0
		public void ClippingPanelTest ()
		{
			var mine = new UserControlPoker () { Width = 30, Height = 30 };
			var content = new PanelPoker () { Width = 50, Height = 50 };
			
			mine.SetContent (content);

			content.Measured += (Size result) => {
				content.MeasureResult = new Size (0,0);
			};

			content.Arranged += (Size result) => {
				content.ArrangeResult = content.ArrangeArg;
			};

			CreateAsyncTest (mine, () => {
					Assert.AreEqual (new Size (30, 30), mine.MeasureArg, "MeasureArg");
					Assert.AreEqual (new Size (30, 30), mine.MeasureResult, "MeasureResult");
					Assert.AreEqual (new Size (30, 30), mine.DesiredSize, "parent Desired");
					Assert.AreEqual (new Size (30, 30), content.DesiredSize, "content desired");
					
					Assert.AreEqual (new Size (30, 30), mine.ArrangeArg, "ArrangeArg");
					Assert.AreEqual (new Size (30, 30), mine.ArrangeResult, "ArrangeArg");
					Assert.AreEqual (new Size (50, 50), new Size (content.ActualWidth, content.ActualHeight), "content actual");
					Assert.AreEqual (new Size (30, 30), mine.RenderSize, "parent rendersize");
					Assert.AreEqual (new Size (50, 50), content.RenderSize, "content rendersize");
					Assert.AreEqual (new Rect (0,0,30,30), LayoutInformation.GetLayoutSlot (content), "content slot");
					Assert.IsNotNull (LayoutInformation.GetLayoutClip (content), "clip");

					RectangleGeometry rect = LayoutInformation.GetLayoutClip (content) as RectangleGeometry;
					Assert.IsNotNull (rect);
					
					Assert.AreEqual (LayoutInformation.GetLayoutSlot (content), rect.Rect, "clip == slot");
				}
				);
		}