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\")"); }
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"); }