#131 – Dependency Properties Inherit Values from Higher Up in the Logical Tree
November 20, 2010 1 Comment
The value of a dependency property can come from a number of different sources, but the property often inherits its value from an element further up the logical tree.
This means that when you set a property value in XAML or in code, that value often “trickles down” the element tree and is applied to other elements that have a property of the same name.
Here’s an example. The value of FontStyle for several controls is inherited from the top-level Window element.
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:m="clr-namespace:PersonLib;assembly=PersonLib" Title="MainWindow" Height="350" Width="525" FontStyle="Italic"> <StackPanel Orientation="Vertical"> <Button Content="Run" Height="23" Width="75" /> <Button Content="Skip" Height="23" Width="75" /> <StackPanel Orientation="Horizontal"> <Label Content="Inside 2nd StackPanel"/> <Label Content="I do my own FontStyle" FontStyle="Normal"/> </StackPanel> </StackPanel> </Window>
Here’s what the window looks like:
The value for a dependency property will not be inherited if that value is set explicitly (locally) in an element.
Pingback: #337 – Specifying Font Properties for All Controls In a Window « 2,000 Things You Should Know About WPF