#111 – The Visual Tree
October 31, 2010 3 Comments
A visual tree in WPF breaks down the logical tree into lower-level visual elements. Where elements in a logical tree are typically controls, the visual tree contains all of the underlying visual elements that make up the control. All elements in a visual tree derive from Visual or Visual3D.
As an example, the visual tree for the following XAML:
<Window x:Class="WpfApplication4.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml> <StackPanel> <Button Content="Click Me" /> <TextBox /> <ListBox> <ListBoxItem Content="Barley"/> <ListBoxItem Content="Oats"/> </ListBox> </StackPanel> </Window>
looks like this:
Window Border AdornerDecorator ContentPresenter StackPanel Button ButtonChrome ContentPresenter TextBlock TextBox ListBoxChrome ScrollViewer Grid Rectangle ScrollContentPresenter TextBoxView TextBoxLineDrawingVisual AdornerLayer Scrollbar Scrollbar ListBox Border ScrollViewer Grid Rectangle ScrollContentPresenter ItemsPresenter VirtualizingStackPanel ListBoxItem Border ContentPresenter TextBlock ListBoxItem Border ContentPresenter TextBlock AdornerLayer ScrollBar Scrollbar AdornerLayer