public void MeasureCoreTest() { LayoutTestElement element = new LayoutTestElement { MeasureSize = new Size(200, 100) }; element.Measure(new Size(200, 100)); Assert.AreEqual(new Size(200, 100), element.DesiredSize); element.Measure(Size.Infinity); Assert.AreEqual(new Size(200, 100), element.DesiredSize); element.Measure(Size.Zero); Assert.AreEqual(new Size(200, 100), element.DesiredSize); element.Margin = new Thickness(10, 20, 30, 40); element.Measure(new Size(200, 100)); Assert.AreEqual(new Size(240, 160), element.DesiredSize); element.Measure(Size.Infinity); Assert.AreEqual(new Size(240, 160), element.DesiredSize); element.Measure(Size.Zero); Assert.AreEqual(new Size(240, 160), element.DesiredSize); element.Width = 400; element.Height = 300; element.Measure(new Size(200, 100)); Assert.AreEqual(new Size(440, 360), element.DesiredSize); element.Measure(Size.Infinity); Assert.AreEqual(new Size(440, 360), element.DesiredSize); element.Measure(Size.Zero); Assert.AreEqual(new Size(440, 360), element.DesiredSize); }
public void ArrangeCoreTest() { LayoutTestElement element = new LayoutTestElement { MeasureSize = new Size(200, 100) }; element.Arrange(new Rect(100, 50)); Assert.AreEqual(new Size(100, 50), element.LastAvailableSize); Assert.AreEqual(new Size(100, 50), element.VisualSize); Assert.AreEqual(new Point(0, 0), element.VisualOffset); Assert.AreEqual(100, element.ActualWidth); Assert.AreEqual(50, element.ActualHeight); element.Width = 200; element.Height = 100; element.Arrange(new Rect(100, 50)); Assert.AreEqual(new Size(200, 100), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(-50, -25), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.Width = Double.NaN; element.Height = Double.NaN; element.Arrange(new Rect(200, 100)); Assert.AreEqual(new Size(200, 100), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(0, 0), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Left; element.VerticalAlignment = VerticalAlignment.Top; element.Arrange(new Rect(300, 200)); Assert.AreEqual(new Size(300, 200), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(0, 0), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Center; element.VerticalAlignment = VerticalAlignment.Bottom; element.Arrange(new Rect(300, 200)); Assert.AreEqual(new Size(300, 200), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(50, 100), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Right; element.VerticalAlignment = VerticalAlignment.Center; element.Arrange(new Rect(300, 200)); Assert.AreEqual(new Size(300, 200), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(100, 50), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Stretch; element.VerticalAlignment = VerticalAlignment.Stretch; element.Arrange(new Rect(300, 200)); Assert.AreEqual(new Size(300, 200), element.LastAvailableSize); Assert.AreEqual(new Size(300, 200), element.VisualSize); Assert.AreEqual(new Point(0, 0), element.VisualOffset); Assert.AreEqual(300, element.ActualWidth); Assert.AreEqual(200, element.ActualHeight); element.ArrangeSize = new Size(200, 100); element.InvalidateArrange(); element.HorizontalAlignment = HorizontalAlignment.Stretch; element.VerticalAlignment = VerticalAlignment.Stretch; element.Arrange(new Rect(300, 200)); Assert.AreEqual(new Size(300, 200), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(50, 50), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); }
public void ArrangeCoreMarginTest() { LayoutTestElement element = new LayoutTestElement { MeasureSize = new Size(200, 100), Margin = new Thickness(10, 20, 30, 40) }; element.Arrange(new Rect(200, 100)); Assert.AreEqual(new Size(160, 40), element.LastAvailableSize); Assert.AreEqual(new Size(160, 40), element.VisualSize); Assert.AreEqual(new Point(10, 20), element.VisualOffset); Assert.AreEqual(160, element.ActualWidth); Assert.AreEqual(40, element.ActualHeight); element.Width = 200; element.Height = 100; element.InvalidateArrange(); element.Arrange(new Rect(200, 100)); Assert.AreEqual(new Size(200, 100), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(-10, -10), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.Width = Double.NaN; element.Height = Double.NaN; element.Arrange(new Rect(240, 160)); Assert.AreEqual(new Size(200, 100), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(10, 20), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Left; element.VerticalAlignment = VerticalAlignment.Top; element.Arrange(new Rect(340, 260)); Assert.AreEqual(new Size(300, 200), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(10, 20), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Center; element.VerticalAlignment = VerticalAlignment.Bottom; element.Arrange(new Rect(340, 260)); Assert.AreEqual(new Size(300, 200), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(60, 120), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Right; element.VerticalAlignment = VerticalAlignment.Center; element.Arrange(new Rect(340, 260)); Assert.AreEqual(new Size(300, 200), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(110, 70), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Stretch; element.VerticalAlignment = VerticalAlignment.Stretch; element.Arrange(new Rect(340, 260)); Assert.AreEqual(new Size(300, 200), element.LastAvailableSize); Assert.AreEqual(new Size(300, 200), element.VisualSize); Assert.AreEqual(new Point(10, 20), element.VisualOffset); Assert.AreEqual(300, element.ActualWidth); Assert.AreEqual(200, element.ActualHeight); element.ArrangeSize = new Size(200, 100); element.InvalidateArrange(); element.HorizontalAlignment = HorizontalAlignment.Stretch; element.VerticalAlignment = VerticalAlignment.Stretch; element.Arrange(new Rect(340, 260)); Assert.AreEqual(new Size(300, 200), element.LastAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(60, 70), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); }
public void ArrangeCoreTest() { TestTaskScheduler scheduler = (TestTaskScheduler)ApplicationHost.Current.TaskScheduler; using (scheduler.DisableImmediateProcessing()) { LayoutTestElement element = new LayoutTestElement { IsRootElement = true, MeasureSize = new Size(200, 100) }; element.Arrange(new Rect(100, 50)); Assert.AreEqual(1, element.MeasureCount); Assert.AreEqual(1, element.ArrangeCount); Assert.AreEqual(new Size(100, 50), element.PreviousAvailableSize); Assert.AreEqual(new Size(100, 50), element.VisualSize); Assert.AreEqual(new Point(0, 0), element.VisualOffset); Assert.AreEqual(100, element.ActualWidth); Assert.AreEqual(50, element.ActualHeight); element.Width = 200; element.Height = 100; element.Arrange(new Rect(100, 50)); Assert.AreEqual(2, element.MeasureCount); Assert.AreEqual(2, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(-50, -25), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.Width = Double.NaN; element.Height = Double.NaN; element.Arrange(new Rect(200, 100)); Assert.AreEqual(3, element.MeasureCount); Assert.AreEqual(3, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.PreviousAvailableSize); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(0, 0), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Left; element.VerticalAlignment = VerticalAlignment.Top; element.Arrange(new Rect(300, 200)); Assert.AreEqual(4, element.MeasureCount); Assert.AreEqual(4, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(0, 0), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Center; element.VerticalAlignment = VerticalAlignment.Bottom; element.Arrange(new Rect(300, 200)); Assert.AreEqual(5, element.MeasureCount); Assert.AreEqual(5, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(50, 100), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Right; element.VerticalAlignment = VerticalAlignment.Center; element.Arrange(new Rect(300, 200)); Assert.AreEqual(6, element.MeasureCount); Assert.AreEqual(6, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(100, 50), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Stretch; element.VerticalAlignment = VerticalAlignment.Stretch; element.Arrange(new Rect(300, 200)); Assert.AreEqual(7, element.MeasureCount); Assert.AreEqual(7, element.ArrangeCount); Assert.AreEqual(new Size(300, 200), element.VisualSize); Assert.AreEqual(new Point(0, 0), element.VisualOffset); Assert.AreEqual(300, element.ActualWidth); Assert.AreEqual(200, element.ActualHeight); element.ArrangeSize = new Size(200, 100); element.InvalidateArrange(); element.Arrange(new Rect(300, 200)); Assert.AreEqual(7, element.MeasureCount); Assert.AreEqual(8, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(50, 50), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); } }
public void ArrangeCoreMarginTest() { TestTaskScheduler scheduler = (TestTaskScheduler)ApplicationHost.Current.TaskScheduler; using (scheduler.DisableImmediateProcessing()) { LayoutTestElement element = new LayoutTestElement { MeasureSize = new Size(200, 100), Margin = new Thickness(10, 20, 30, 40) }; element.Arrange(new Rect(200, 100)); Assert.AreEqual(1, element.MeasureCount); Assert.AreEqual(1, element.ArrangeCount); Assert.AreEqual(new Size(160, 40), element.VisualSize); Assert.AreEqual(new Point(10, 20), element.VisualOffset); Assert.AreEqual(160, element.ActualWidth); Assert.AreEqual(40, element.ActualHeight); element.Width = 200; element.Height = 100; element.Arrange(new Rect(200, 100)); Assert.AreEqual(2, element.MeasureCount); Assert.AreEqual(2, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(-10, -10), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.Width = Double.NaN; element.Height = Double.NaN; element.Arrange(new Rect(240, 160)); Assert.AreEqual(3, element.MeasureCount); Assert.AreEqual(3, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(10, 20), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Left; element.VerticalAlignment = VerticalAlignment.Top; element.Arrange(new Rect(340, 260)); Assert.AreEqual(4, element.MeasureCount); Assert.AreEqual(4, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(10, 20), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Center; element.VerticalAlignment = VerticalAlignment.Bottom; element.Arrange(new Rect(340, 260)); Assert.AreEqual(5, element.MeasureCount); Assert.AreEqual(5, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(60, 120), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Right; element.VerticalAlignment = VerticalAlignment.Center; element.Arrange(new Rect(340, 260)); Assert.AreEqual(6, element.MeasureCount); Assert.AreEqual(6, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(110, 70), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); element.HorizontalAlignment = HorizontalAlignment.Stretch; element.VerticalAlignment = VerticalAlignment.Stretch; element.Arrange(new Rect(340, 260)); Assert.AreEqual(7, element.MeasureCount); Assert.AreEqual(7, element.ArrangeCount); Assert.AreEqual(new Size(300, 200), element.VisualSize); Assert.AreEqual(new Point(10, 20), element.VisualOffset); Assert.AreEqual(300, element.ActualWidth); Assert.AreEqual(200, element.ActualHeight); element.ArrangeSize = new Size(200, 100); element.InvalidateArrange(); element.Arrange(new Rect(340, 260)); Assert.AreEqual(7, element.MeasureCount); Assert.AreEqual(8, element.ArrangeCount); Assert.AreEqual(new Size(200, 100), element.VisualSize); Assert.AreEqual(new Point(60, 70), element.VisualOffset); Assert.AreEqual(200, element.ActualWidth); Assert.AreEqual(100, element.ActualHeight); } }