示例#1
0
		public void LayoutUpdated ()
		{
			bool layoutUpdated = false;
			bool loaded = false;
			ConcreteFrameworkElement element = new ConcreteFrameworkElement ();
			EventHandler handler = (o, e) => { layoutUpdated = true; };
			element.LayoutUpdated += handler;
			element.Loaded += (o, e) => { loaded = true; };
			Enqueue (() => TestPanel.Children.Add (element));
			EnqueueConditional (() => loaded );
			EnqueueConditional (() => layoutUpdated);
			Enqueue (() => { layoutUpdated = false; element.InvalidateArrange (); });
			EnqueueConditional (() => layoutUpdated);
			Enqueue (() => { layoutUpdated = false; element.InvalidateMeasure (); });
			EnqueueConditional (() => layoutUpdated);
			Enqueue (() => { element.LayoutUpdated -= handler; });
			EnqueueTestComplete ();
		}
示例#2
0
		public void InvalidateMeasureRaisesLayoutUpdated()
		{
			int count = 0;
			var c = new ConcreteFrameworkElement ();
			c.LayoutUpdated += (o, e) =>  count++;
			CreateAsyncTest (c,
				() => count = 0,
				() => c.InvalidateMeasure(),
				() => Assert.AreEqual(1, count, "#1"),
				() => c.InvalidateMeasure(),
				() => Assert.AreEqual(2, count, "#2")
			);
		}
示例#3
0
		public void ParentlessMeasureTest ()
		{
			var fe = new ConcreteFrameworkElement ();
	
			fe.Measure (new Size (100,100));

			Assert.AreEqual (new Size (0, 0), fe.DesiredSize, "deisred");

			fe.Width = 10;
			fe.Height = 10;
			
			Assert.AreEqual (new Size (10,10), new Size (fe.ActualWidth, fe.ActualHeight), "fe actual");

			fe.InvalidateMeasure ();
			fe.Measure (new Size (100,100));
			
			Assert.AreEqual (new Size (0, 0), fe.DesiredSize, "deisred");
		}
示例#4
0
		public void InvalidateMeasure ()
		{
			bool loaded = false;
			ConcreteFrameworkElement c = new ConcreteFrameworkElement ();
			c.Loaded += delegate { loaded = true; };
			TestPanel.Children.Add (c);
			EnqueueConditional (() => loaded, "#1");
			EnqueueConditional (() => c.Measured, "#2");
			EnqueueConditional (() => c.Arranged, "#3");
			Enqueue (() => loaded = c.Arranged = c.Measured = c.Templated = false);
			Enqueue (() => c.InvalidateMeasure ());
			EnqueueConditional (() => c.Measured, "#4");
			EnqueueConditional (() => c.Arranged, "#5");
			EnqueueTestComplete ();
		}
示例#5
0
		public void MeasureOverride2 ()
		{
			ConcreteFrameworkElement c = new ConcreteFrameworkElement ();
			c.Measure (new Size (0, 100));
			Assert.IsFalse (c.Measured, "#1");
			c.InvalidateMeasure ();
			c.Measure (new Size (0, 100));
			Assert.IsFalse (c.Measured, "#2");
		}