Mega Code Archive

 
Categories / C# / WPF
 

Print Logical Tree

<Window x:Class="WPFTrees.Window1"   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   Title="WPFTrees" Height="304" Width="702" Name="MyWindow">   <DockPanel Name="DockPanel1">     <StackPanel DockPanel.Dock="Left" Margin="6,4,4,4" >       <Canvas Name="canvas1">         <Button Name="button1">           <Ellipse Name="ellipse1" Height="100" Width="100" Fill="Red"></Ellipse>         </Button>       </Canvas>     </StackPanel>     <Button DockPanel.Dock="Left" Height="20" Width="100"        HorizontalAlignment="Left" Margin="1,4,4,4" Click="buttonPrint_Click">Print Trees</Button>   </DockPanel> </Window> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Collections; namespace WPFTrees {   public partial class Window1 : System.Windows.Window   {     public Window1()     {       InitializeComponent();     }     public void PrintLogicalTree(Object obj)     {       if (obj is FrameworkElement)       {         FrameworkElement element = (FrameworkElement)obj;         Console.WriteLine(element.GetType().ToString());         IEnumerable children = LogicalTreeHelper.GetChildren(element);         foreach (Object child in children)         {           PrintLogicalTree(child);         }       }     }     private void buttonPrint_Click(Object sender, RoutedEventArgs e)     {       PrintLogicalTree(this.button1);     }   } }