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"); } ); }
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)); } ); }
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)); } ); }
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)); } ); }
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"); } ); }