Exemplo n.º 1
0
		public void TemplatedControl ()
		{
			TemplatedControl c = new TemplatedControl { Name = "Custom" };
			c.ApplyTemplate ();

			Rectangle Bob = new Rectangle { Name = "Bob" };
			Storyboard resourceSB = c.Resources ["ResourceSB"] as Storyboard;
			Storyboard templateSb = (Storyboard) c.GetTemplateChild ("TemplateSB");
			Grid grid = c.TemplateGrid;
			Rectangle rect = (Rectangle) grid.FindName ("Rect");
			Rectangle fakeGrid = new Rectangle { Name = "Grid" };

			c.TemplateGrid.Children.Add (Bob);
			testArea.Children.Add (c);

			Assert.IsNull (testArea.FindName ("LayoutRoot"), "LayoutRoot.FindName (\"LayoutRoot\")");
			Assert.IsTrue (testArea.FindName ("Custom") == c, "LayoutRoot.FindName (\"Custom\")");
			Assert.IsNull (testArea.FindName ("Grid"), "LayoutRoot.FindName (\"Grid\")");
			Assert.IsNull (testArea.FindName ("Bob"), "LayoutRoot.FindName (\"Bob\")");
			Assert.IsNull (testArea.FindName ("Rect"), "LayoutRoot.FindName (\"Rect\")");

			Assert.IsNull (c.FindName ("LayoutRoot"), "c.FindName (\"LayoutRoot\")");
			Assert.IsTrue (c.FindName ("Custom") == c, "c.FindName (\"Custom\")");
			Assert.IsNull (c.FindName ("Grid"), "c.FindName (\"Grid\")");
			Assert.IsTrue (c.FindName ("Bob") == Bob, "c.FindName (\"Bob\")");
			Assert.IsNull (c.FindName ("Rect"), "c.FindName (\"Rect\")");

			Assert.IsNull (grid.FindName ("LayoutRoot"), "grid.FindName (\"LayoutRoot\")");
			Assert.IsNull (grid.FindName ("Custom"), "grid.FindName (\"Custom\")");
			Assert.IsTrue (grid.FindName ("Grid") == grid, "grid.FindName (\"Grid\")");
			Assert.IsNull (grid.FindName ("Bob"), "grid.FindName (\"Bob\")");
			Assert.IsTrue (grid.FindName ("Rect") == rect, "grid.FindName (\"Rect\")");

			Assert.IsNull (Bob.FindName ("LayoutRoot"), "Bob.FindName (\"LayoutRoot\")");
			Assert.IsTrue (Bob.FindName ("Custom") == c, "Bob.FindName (\"Custom\")");
			Assert.IsNull (Bob.FindName ("Grid"), "Bob.FindName (\"Grid\")");
			Assert.IsTrue (Bob.FindName ("Bob") == Bob, "Bob.FindName (\"Bob\")");
			Assert.IsNull (Bob.FindName ("Rect"), "Bob.FindName (\"Rect\")");

			Assert.IsNull (rect.FindName ("LayoutRoot"), "rect.FindName (\"LayoutRoot\")");
			Assert.IsNull (rect.FindName ("Custom"), "rect.FindName (\"Custom\")");
			Assert.IsTrue (rect.FindName ("Grid") == c.TemplateGrid, "rect.FindName (\"Grid\")");
			Assert.IsNull (rect.FindName ("Bob"), "rect.FindName (\"Bob\")");
			Assert.IsTrue (rect.FindName ("Rect") == rect, "rect.FindName (\"Rect\")");
		}
Exemplo n.º 2
0
		public void ElementName_CanFindNonTemplateInTemplateSubtree ()
		{
			var c = (ContentControl) XamlReader.Load (@"
<ContentControl xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"">
	<ContentControl.Template>
		<ControlTemplate>
			<Grid />
		</ControlTemplate>
	</ContentControl.Template>
</ContentControl>");
			c.ApplyTemplate ();

			var grid = (Grid) VisualTreeHelper.GetChild (c, 0);
			var a = new Rectangle { Name = "A" };
			var b = new Rectangle { Name = "B" };
			grid.Children.Add (a);
			grid.Children.Add (b);
			Assert.AreSame (b, a.FindName ("B"), "#1");
			Assert.IsNull (grid.FindName ("B"), "#2");
			Assert.AreSame (b, c.FindName ("B"), "#3");
		}