Example #1
0
        void ShowElement(ContentControl elementHolder, object element)
        {
            elementHolder.Content = null;

            Type elementType = element.GetType();

            if ((elementType == typeof(ToolTip)) ||
                (elementType == typeof(Window)))
            {
                // can't be set as a child, but don't need to be shown, so do nothing
            }
            else if (elementType == typeof(NavigationWindow))
            {
                NavigationWindow wnd = (NavigationWindow)element;
                wnd.WindowState   = WindowState.Minimized;
                wnd.ShowInTaskbar = false;
                wnd.Show(); // needs to be shown once to "hydrate" the template
                wnd.Hide();
            }
            else if (typeof(ContextMenu).IsAssignableFrom(elementType))
            {
                elementHolder.ContextMenu = (ContextMenu)element;
            }
            else if (typeof(Page).IsAssignableFrom(elementType))
            {
                Frame frame = new Frame();
                frame.Content         = element;
                elementHolder.Content = frame;
            }
            else
            {
                elementHolder.Content = element;
            }
        }