public void FindChildControl_IndexTooGreat()
		{
			ThreadRunner.RunInSTA(delegate
			{
				DependencyObjectExtensionsTestVisual visual = new DependencyObjectExtensionsTestVisual();
				RenderUtility.RenderVisual(visual);

				TextBox tb = visual.FindChildControl<TextBox>(4);
				Assert.IsNull(tb);
			});
		}
		public void FindChildControl_FindNonExistentControl()
		{
			ThreadRunner.RunInSTA(delegate
			{
				DependencyObjectExtensionsTestVisual visual = new DependencyObjectExtensionsTestVisual();
				RenderUtility.RenderVisual(visual);

				//Attempt to find first, implicit
				TabControl tc = visual.FindChildControl<TabControl>();
				Assert.IsNull(tc);

				//Attempt to find first, explicit
				tc = visual.FindChildControl<TabControl>(0);
				Assert.IsNull(tc);

				//Attempt to find other than first
				tc = visual.FindChildControl<TabControl>(2);
				Assert.IsNull(tc);

			});
		}
		public void FindChildControl_IndexLessThanZero()
		{
			ThreadRunner.RunInSTA(delegate
			{
				DependencyObjectExtensionsTestVisual visual = new DependencyObjectExtensionsTestVisual();
				RenderUtility.RenderVisual(visual);

				TextBox tb = visual.FindChildControl<TextBox>(-1);
				Assert.IsTrue(tb != null && tb.Text == "TextBox 1");
			});
		}
		public void FindChildControl_FindFirst()
		{
			ThreadRunner.RunInSTA(delegate
			{
				DependencyObjectExtensionsTestVisual visual = new DependencyObjectExtensionsTestVisual();
				RenderUtility.RenderVisual(visual);

				//Assume first element
				TextBox tb = visual.FindChildControl<TextBox>();
				Assert.IsTrue(tb != null && tb.Text == "TextBox 1");

				//Explicitly findfirst element
				tb = visual.FindChildControl<TextBox>(0);
				Assert.IsTrue(tb != null && tb.Text == "TextBox 1");
			});
		}