Esempio n. 1
0
        /// <summary>
        /// Die anzuzeigende Seite wechseln
        /// Erstellt neue Instanzen anstatt existierende wieder zu verwenden, da es Probleme mit dem .net Framework gab
        /// </summary>
        /// <param name="label">Der Titel der neuen Seite</param>
        /// <param name="pageType">Der Typ der neuen Seite</param>
        /// <param name="args">Parameter für den Konstruktor der neuen Seite</param>
        public void switchPage(string label, Type pageType, params object[] args)
        {
            try
            {
                KPage page = (KPage)Activator.CreateInstance(pageType, args);

                Frame           frame           = new Frame();
                Toolbar         toolbar         = new Toolbar(frame, page);
                ScrollableFrame scrollableFrame = new ScrollableFrame();
                ExtScrollViewer extScrollViewer = scrollableFrame.createScrollableFrame(frame);
                frame.Margin = new Thickness(15, 0, 0, 0);

                DockPanel.SetDock(toolbar.dpToolbarPanel, Dock.Top);

                frame.Content           = page;
                page.parentFrame        = frame;
                page.parentToolbar      = toolbar;
                page.parentScrollViewer = extScrollViewer;
                page.defineToolbarContent();

                this.contentPanel.Children.Clear();
                this.contentPanel.Children.Add(toolbar.dpToolbarPanel);
                this.contentPanel.Children.Add(extScrollViewer);
                this.lbPageTitle.Content = label;
            }
            catch
            {
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Hole eine KPage Instanz aus den Tabs eines TabControls
        /// </summary>
        /// <typeparam name="T">Normalerweise ein KPage-Typ</typeparam>
        /// <returns>Die gesuchte KPage-Instanz</returns>
        public T getPageFromTabs <T>()
        {
            try
            {
                if (parentTabControl == null)
                {
                    //return default(T);  // null
                    throw new Exception("You tried to get pages from a TabControl that was not initialized. Check if the parentTabControl of the calling KPanel class really is being initialized");
                }

                foreach (TabItem t in this.parentTabControl.Items)              // iteriere über alle tabs
                {
                    DockPanel pageWrapper = t.Content as DockPanel;             // ein tab beinhaltet ein pageWrapper DockPanel welches die Toolbar und den ExtScrollViewer / Frame beinhaltet
                    foreach (var x in pageWrapper.Children)                     // iteriere über den pageWrapper
                    {
                        if (x.GetType() == typeof(ExtScrollViewer))             // wir suchen den ExtScrollViewer
                        {
                            ExtScrollViewer s = x as ExtScrollViewer;
                            if (s.Content.GetType() == typeof(Frame))           // normalerweise ist der content von ExtScrollViewer ein Frame
                            {
                                Frame f = s.Content as Frame;                   // hole den Frame
                                if (f.Content.GetType() == typeof(T))           // versichern, dass im frame wirklich eine Instanz des gewünschten Typs ist
                                {
                                    T page = (T)(f.Content);                    // hole die gesuchte Instanz
                                    return(page);
                                }
                            }
                        }
                    }
                }
                return(default(T));  // null
            }
            catch
            {
                return(default(T));  // null
            }
        }