Пример #1
0
Файл: Test.cs Проект: ynkbt/moon
        void RunTest()
        {
            var c = new MyContentControl();

            c.SetValue(MyContentControl.MyProperty, null);

            Style s1 = new Style(typeof(MyContentControl));

            s1.Setters.Add(new Setter(MyContentControl.MyProperty, new Wrapper {
                Value = c
            }));
            c.Style = s1;

            WeakControl = c;
            GCAndInvoke(() => {
                if (WeakControl != null)
                {
                    Fail("TextBox should be collected");
                }
                else
                {
                    Succeed();
                }
            });
        }
Пример #2
0
        public void TwoChildrenMargin_2Columns_1Star_and_2Star_1Row_constSize()
        {
            MyGrid g = new MyGrid();

            RowDefinition    rdef;
            ColumnDefinition cdef;

            rdef        = new RowDefinition();
            rdef.Height = new GridLength(200);
            g.RowDefinitions.Add(rdef);

            cdef       = new ColumnDefinition();
            cdef.Width = new GridLength(1, GridUnitType.Star);
            g.ColumnDefinitions.Add(cdef);

            cdef       = new ColumnDefinition();
            cdef.Width = new GridLength(2, GridUnitType.Star);
            g.ColumnDefinitions.Add(cdef);

            g.Margin = new Thickness(5);

            Canvas           c;
            MyContentControl mc;

            c        = new Canvas();
            c.Width  = 400;
            c.Height = 400;
            mc       = new MyContentControl {
                Content = c
            };
            Grid.SetRow(mc, 0);
            Grid.SetColumn(mc, 0);
            g.Children.Add(mc);

            c        = new Canvas();
            c.Width  = 400;
            c.Height = 400;
            mc       = new MyContentControl {
                Content = c
            };
            Grid.SetRow(mc, 0);
            Grid.SetColumn(mc, 1);
            g.Children.Add(mc);

            g.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
            g.CheckMeasureArgs("#MeasureOverrideArg", new Size(inf, 200), new Size(inf, 200));
            g.Reset();
            Assert.AreEqual(new Size(810, 210), g.DesiredSize, "DesiredSize");

            g.Measure(new Size(100, 100));
            g.CheckMeasureArgs("#MeasureOverrideArg 2", new Size(30, 200), new Size(60, 200));
            g.Reset();
            Assert.AreEqual(new Size(100, 100), g.DesiredSize, "DesiredSize");
        }
Пример #3
0
Файл: Test.cs Проект: dfr0/moon
		void RunTest ()
		{
			var c = new MyContentControl ();
            c.SetValue(MyContentControl.MyProperty, null);

            Style s1 = new Style(typeof(MyContentControl));
            s1.Setters.Add(new Setter(MyContentControl.MyProperty, new Wrapper { Value = c }));
            c.Style = s1;

			WeakControl = c;
			GCAndInvoke (() => {
				if (WeakControl != null)
					Fail ("TextBox should be collected");
				else
					Succeed ();
			});
		}
Пример #4
0
        public void ConstraintsNotUsedInMeasureOverride()
        {
            Rectangle r = new Rectangle {
                Width = 50, Height = 50
            };
            MyContentControl c = new MyContentControl {
                Width   = 80,
                Height  = 80,
                Content = r
            };

            c.Measure(new Size(100, 100));
            Assert.AreEqual(new Size(80, 80), c.MeasureOverrideArg, "#1");
            Assert.AreEqual(new Size(50, 50), c.MeasureOverrideResult, "#2");

            Assert.AreEqual(new Size(50, 50), r.DesiredSize, "#3");
            Assert.AreEqual(new Size(80, 80), c.DesiredSize, "#4");
        }
Пример #5
0
        public void ArrangeTest()
        {
            MyGrid g = new MyGrid();

            RowDefinition    rdef;
            ColumnDefinition cdef;

            rdef        = new RowDefinition();
            rdef.Height = new GridLength(50);
            g.RowDefinitions.Add(rdef);

            cdef       = new ColumnDefinition();
            cdef.Width = new GridLength(100);
            g.ColumnDefinitions.Add(cdef);

            g.Margin = new Thickness(5);

            var r = new Border();
            MyContentControl mc = new MyContentControl {
                Content = r
            };

            Grid.SetRow(mc, 0);
            Grid.SetColumn(mc, 0);

            g.Children.Add(mc);

            g.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
            g.CheckMeasureArgs("#MeasureOverrideArg", new Size(100, 50));
            g.Reset();
            Assert.AreEqual(new Size(0, 0), new Size(r.ActualWidth, r.ActualHeight), "r actual after measure");
            Assert.AreEqual(new Size(0, 0), new Size(g.ActualWidth, g.ActualHeight), "g actual after measure");

            g.Arrange(new Rect(0, 0, g.DesiredSize.Width, g.DesiredSize.Height));
            g.CheckRowHeights("#RowHeights", 50);
            Assert.AreEqual(new Size(0, 0), r.DesiredSize, "r desired 0");
            Assert.AreEqual(new Size(110, 60), g.DesiredSize, "g desired 1");

            Assert.AreEqual(new Rect(0, 0, 100, 50).ToString(), LayoutInformation.GetLayoutSlot(r).ToString(), "slot");
            Assert.AreEqual(new Size(100, 50), new Size(r.ActualWidth, r.ActualHeight), "r actual after arrange");
            Assert.AreEqual(new Size(100, 50), new Size(g.ActualWidth, g.ActualHeight), "g actual after arrange");
        }
Пример #6
0
        public void ArrangeChild_ColSpan2_2Columns_constSize_and_1Star_1Row_constSize()
        {
            MyGrid g = new MyGrid();

            g.AddRows(new GridLength(200));
            g.AddColumns(new GridLength(200), new GridLength(2, GridUnitType.Star));
            g.Margin = new Thickness(5);

            MyContentControl mc = new MyContentControl {
                Content = new Canvas {
                    Width = 400, Height = 400
                }
            };

            Grid.SetRow(mc, 0);
            Grid.SetColumn(mc, 0);
            Grid.SetColumnSpan(mc, 2);
            g.Children.Add(mc);

            TestPanel.Width  = 500;
            TestPanel.Height = 500;
            CreateAsyncTest(g,
                            () => {
                g.CheckMeasureArgs("#MeasureOverrideArg", new Size(490, 200));
                g.CheckRowHeights("#RowHeights", 200);
                g.CheckColWidths("#ColWidths", 200, 290);

                TestPanel.Width  = 100;
                TestPanel.Height = 100;
                g.Reset();
            }, () => {
                g.CheckMeasureArgs("#MeasureOverrideArg 2", new Size(200, 200));
                g.CheckRowHeights("#RowHeights 2", 200);
                g.CheckColWidths("#ColWidths 2", 200, 0);
            }
                            );
        }
Пример #7
0
        void MeasureOrder5Impl(bool checkOrder)
        {
            TestPanel.Width  = 500;
            TestPanel.Height = 500;

            MyContentControl star  = ContentControlWithChild();
            MyContentControl pixel = ContentControlWithChild();
            MyContentControl auto  = ContentControlWithChild();

            MyGrid grid = new MyGrid();

            grid.AddRows(new GridLength(1, GridUnitType.Star), GridLength.Auto, new GridLength(30, GridUnitType.Pixel), new GridLength(30, GridUnitType.Pixel));
            grid.AddColumns(new GridLength(50, GridUnitType.Pixel));

            CreateAsyncTest(grid,
                            () => {
                grid.AddChild(star, 0, 0, 1, 1);
                grid.AddChild(auto, 1, 0, 1, 1);
                grid.AddChild(pixel, 2, 0, 1, 1);
            }, () => {
                if (checkOrder)
                {
                    grid.CheckMeasureOrder("#1", 1, 2, 0);
                    grid.CheckMeasureArgs("#a", new Size(50, inf), new Size(50, 30), new Size(50, 390));
                }
                grid.CheckFinalMeasureArg("#a2", new Size(50, 390), new Size(50, inf), new Size(50, 30));
                grid.CheckRowHeights("#b", 390, 50, 30, 30);

                grid.Children.Clear();
                grid.AddChild(star, 0, 0, 1, 1);
                grid.AddChild(pixel, 2, 0, 1, 1);
                grid.AddChild(auto, 1, 0, 1, 1);
                grid.Reset();
            }, () => {
                if (checkOrder)
                {
                    grid.CheckMeasureOrder("#2", 1, 2, 0);
                    grid.CheckMeasureArgs("#c", new Size(50, 30), new Size(50, inf), new Size(50, 390));
                }
                grid.CheckFinalMeasureArg("#c2", new Size(50, 390), new Size(50, 30), new Size(50, inf));
                grid.CheckRowHeights("#d", 390, 50, 30, 30);

                grid.Children.Clear();
                grid.AddChild(pixel, 2, 0, 1, 1);
                grid.AddChild(star, 0, 0, 1, 1);
                grid.AddChild(auto, 1, 0, 1, 1);
                grid.Reset();
            }, () => {
                if (checkOrder)
                {
                    grid.CheckMeasureOrder("#3", 0, 2, 1);
                    grid.CheckMeasureArgs("#e", new Size(50, 30), new Size(50, inf), new Size(50, 390));
                }
                grid.CheckFinalMeasureArg("#e2", new Size(50, 30), new Size(50, 390), new Size(50, inf));
                grid.CheckRowHeights("#f", 390, 50, 30, 30);

                grid.Children.Clear();
                grid.AddChild(pixel, 2, 0, 1, 1);
                grid.AddChild(auto, 1, 0, 1, 1);
                grid.AddChild(star, 0, 0, 1, 1);
                grid.Reset();
            }, () => {
                if (checkOrder)
                {
                    grid.CheckMeasureOrder("#4", 0, 1, 2);
                    grid.CheckMeasureArgs("#g", new Size(50, 30), new Size(50, inf), new Size(50, 390));
                }
                grid.CheckFinalMeasureArg("#g2", new Size(50, 30), new Size(50, inf), new Size(50, 390));
                grid.CheckRowHeights("#h", 390, 50, 30, 30);

                grid.Children.Clear();
                grid.AddChild(auto, 1, 0, 1, 1);
                grid.AddChild(pixel, 2, 0, 1, 1);
                grid.AddChild(star, 0, 0, 1, 1);
                grid.Reset();
            }, () => {
                if (checkOrder)
                {
                    grid.CheckMeasureOrder("#5", 0, 1, 2);
                    grid.CheckMeasureArgs("#i", new Size(50, inf), new Size(50, 30), new Size(50, 390));
                }
                grid.CheckFinalMeasureArg("#i2", new Size(50, inf), new Size(50, 30), new Size(50, 390));
                grid.CheckRowHeights("#j", 390, 50, 30, 30);

                grid.Children.Clear();
                grid.AddChild(auto, 1, 0, 1, 1);
                grid.AddChild(star, 0, 0, 1, 1);
                grid.AddChild(pixel, 2, 0, 1, 1);
                grid.Reset();
            }, () => {
                if (checkOrder)
                {
                    grid.CheckMeasureOrder("#6", 0, 2, 1);
                    grid.CheckMeasureArgs("#k", new Size(50, inf), new Size(50, 30), new Size(50, 390));
                }
                grid.CheckRowHeights("#l", 390, 50, 30, 30);
            }
                            );
        }
Пример #8
0
        public void ComplexLayout1()
        {
            MyGrid g = new MyGrid();

            RowDefinition    rdef;
            ColumnDefinition cdef;

            // Add rows
            rdef        = new RowDefinition();
            rdef.Height = new GridLength(200);
            g.RowDefinitions.Add(rdef);

            rdef        = new RowDefinition();
            rdef.Height = new GridLength(200);
            g.RowDefinitions.Add(rdef);

            cdef       = new ColumnDefinition();
            cdef.Width = GridLength.Auto;
            g.ColumnDefinitions.Add(cdef);

            cdef       = new ColumnDefinition();
            cdef.Width = GridLength.Auto;
            g.ColumnDefinitions.Add(cdef);

            Canvas           child1, child2, child3;
            MyContentControl mc;

            // child1
            child1        = new Canvas();
            child1.Width  = 200;
            child1.Height = 200;
            mc            = new MyContentControl {
                Content = child1
            };
            Grid.SetRow(mc, 0);
            Grid.SetColumn(mc, 0);
            Grid.SetColumnSpan(mc, 2);
            g.Children.Add(mc);

            // child2
            child2        = new Canvas();
            child2.Width  = 150;
            child2.Height = 200;
            mc            = new MyContentControl {
                Content = child2
            };
            Grid.SetRow(mc, 0);
            Grid.SetColumn(mc, 0);
            g.Children.Add(mc);

            // child3
            child3        = new Canvas();
            child3.Width  = 200;
            child3.Height = 200;
            mc            = new MyContentControl {
                Content = child3
            };
            Grid.SetRow(mc, 0);
            Grid.SetColumn(mc, 0);
            g.Children.Add(mc);

            g.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
            g.CheckMeasureArgs("#MeasureOverrideArg", new Size(inf, 200), new Size(inf, 200), new Size(inf, 200));
            g.Reset();
            Assert.AreEqual(new Size(200, 400), g.DesiredSize, "DesiredSize");
        }