Print Logical Tree : UI Element « Windows Presentation Foundation « C# / CSharp Tutorial






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

  }

}
WPF Print Logical Tree








24.48.UI Element
24.48.1.Parent and child timelines with default HoldEnd FillBehaviorParent and child timelines with default HoldEnd FillBehavior
24.48.2.Freezables and elementFreezables and element
24.48.3.Define a resource at the page root level on a FrameworkElement and reference itDefine a resource at the page root level on a FrameworkElement and reference it
24.48.4.Print Logical TreePrint Logical Tree
24.48.5.Print Visual TreePrint Visual Tree
24.48.6.Find enclosure componentFind enclosure component
24.48.7.Logical Visual Tree SampleLogical Visual Tree Sample
24.48.8.About Dialog with Tree WalkingAbout Dialog with Tree Walking
24.48.9.Point Hit Test with VisualTreeHelper.HitTestPoint Hit Test with VisualTreeHelper.HitTest
24.48.10.Find inner visual elementFind inner visual element
24.48.11.Print Visual(Canvas)Print Visual(Canvas)
24.48.12.Change control background in mouse enter and leaveChange control background in mouse enter and leave
24.48.13.Changing graphical elementsChanging graphical elements
24.48.14.Change the Visibility property of a UIElement.Change the Visibility property of a UIElement.
24.48.15.Change FillChange Fill
24.48.16.Extend FrameworkElement to create your own shape
24.48.17.Dump Content Property Attributes