public void ResourceInheritanceTest() { object value; FrameworkElement root = new FrameworkElement(); root.Resources = new ResourceDictionary(); root.Resources.Add("key1", "value1"); Assert.IsTrue(root.TryGetResource("key1", out value)); Assert.AreEqual("value1", value); FrameworkElement child1 = new FrameworkElement(); root.AddVisualChild(child1); root.AddLogicalChild(child1); Assert.IsTrue(child1.TryGetResource("key1", out value)); Assert.AreEqual("value1", value); child1.Resources = new ResourceDictionary(); child1.Resources.Add("key1", "value2"); FrameworkElement child2 = new FrameworkElement(); child1.AddVisualChild(child2); Assert.IsTrue(child2.TryGetResource("key1", out value)); Assert.AreEqual("value2", value); root.AddLogicalChild(child2); Assert.IsTrue(child2.TryGetResource("key1", out value)); Assert.AreEqual("value1", value); }