public MainWindow()
        {
            InitializeComponent();

            Closed += MainWindow_Closed;
            themes.SelectionChanged += Themes_SelectionChanged;

            DataContext          = new List <TemplatedElementInfo>(TemplatedElementInfo.GetTemplatedElements(presentationFrameworkAssembly));
            themes.SelectedIndex = 0;
        }
        private void ElementHolder_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            ContentControl       elementHolder = (ContentControl)sender;
            TemplatedElementInfo elementInfo   = (TemplatedElementInfo)elementHolder.DataContext;

            // Get element (cached)
            object element = GetElement(elementInfo.ElementType);

            // Create and show the element (some have to be shown to give up their templates...)
            ShowElement(elementHolder, element);

            // Fill the element (don't seem to need to do this, but makes it easier to see on the screen...)
            FillElement(element);
        }