Ejemplo n.º 1
0
        object UpdateLayoutTest(object obj)
        {
            MFTestResults tResult = MFTestResults.Pass;
            _panel.InvalidateArrange();
            _panel.InvalidateMeasure();
            _panel.UpdateLayout();
            if (!_panel.IsMeasureValid || !_panel.IsArrangeValid)
            {
                tResult = MFTestResults.Fail;
            }
            Text t1 = new Text(_font, "Text 1");
            t1.ForeColor = Colors.Red;
            Text t2 = new Text(_font, "Text 2");
            Rectangle r = new Rectangle();
            r.Width = rWidth / 2;
            r.Height = rHeight / 2;
            r.Fill = new SolidColorBrush(Colors.Blue);
            Panel childPanel = new Panel();
            childPanel.Children.Add(t1);
            _panel.Children.Add(childPanel);
            _panel.Children.Add(t2);
            _panel.Children.Add(r);
            UIElement[] elts = new UIElement[] { childPanel, t2, r };
            foreach (UIElement elt in elts)
            {
                elt.InvalidateArrange();
                elt.InvalidateMeasure();
                _panel.UpdateLayout();
                if (!elt.IsArrangeValid || !elt.IsMeasureValid)
                {
                    Log.Comment("Failure: Updating a child UIElement type '" +
                        elt.ToString() + "' and verifying");
                    tResult = MFTestResults.Fail;
                }
            }
            t1.InvalidateArrange();
            t1.InvalidateMeasure();
            _panel.UpdateLayout();
            if (!t1.IsArrangeValid || !t1.IsMeasureValid)
            {
                Log.Comment("Failure: Updating child of child panel and verifying");
                tResult = MFTestResults.Fail;
            }

            childPanel.Children.Remove(t1);
            t1.InvalidateArrange();
            t1.InvalidateMeasure();
            _panel.UpdateLayout();
            if (t1.IsArrangeValid || t1.IsMeasureValid)
            {
                Log.Comment("Failure: Updating removed UIElement shouldn't validate");
                tResult = MFTestResults.Fail;
            }

            return tResult;
        }