Ejemplo n.º 1
0
        private void SetTabWidths()
        {
            if (TabHeaders.Count > 0)
            {
                Dispatcher.BeginInvoke(new Action(() =>
                {
                    double windowWidth = TabPanel.ActualWidth;
                    double tabsWidth   = GetTabPanelWidth();

                    if (tabsWidth > windowWidth)
                    {
                        var tabs         = TabHeaders.ToList().OrderByDescending(x => x.ActualWidth).ToList();
                        double widestTab = tabs[0].ActualWidth;

                        tabs = tabs.FindAll(x => x.ActualWidth >= widestTab);

                        foreach (var tab in tabs)
                        {
                            double increment = (tabsWidth - windowWidth) / tabs.Count;

                            int index = TabHeaders.ToList().FindIndex(x => x.Id == tab.Id);
                            if (index >= 0)
                            {
                                var t      = TabHeaders[index];
                                t.MaxWidth = Math.Max(TabHeader.MIN_WIDTH, t.ActualWidth - increment);
                            }

                            tabsWidth = GetTabPanelWidth();
                        }
                    }
                    else if (tabsWidth < windowWidth)
                    {
                        var tabs         = TabHeaders.ToList().OrderByDescending(x => x.ActualWidth).ToList();
                        double widestTab = tabs[0].ActualWidth;

                        tabs = tabs.FindAll(x => x.ActualWidth >= widestTab);

                        foreach (var tab in tabs)
                        {
                            double increment = (windowWidth - tabsWidth) / tabs.Count;

                            int index = TabHeaders.ToList().FindIndex(x => x.Id == tab.Id);
                            if (index >= 0)
                            {
                                var t = TabHeaders[index];

                                double width = t.MaxWidth + increment;
                                width        = Math.Max(width, TabHeader.MIN_WIDTH);
                                width        = Math.Min(width, TabHeader.MAX_WIDTH);

                                t.MaxWidth = width;
                            }

                            tabsWidth = GetTabPanelWidth();
                        }
                    }
                }), System.Windows.Threading.DispatcherPriority.Background, new object[] { });
            }
        }
Ejemplo n.º 2
0
        void OnGetRequestTab(string tabName)
        {
            if (!TabHeaders.Any(x => x.PageName == tabName))
            {
                return;
            }
            var headerInfo = TabHeaders.FirstOrDefault(x => x.PageName == tabName);

            OnTabItemChecked(headerInfo);
        }
Ejemplo n.º 3
0
        public TabHeader FindTab(string name, string tag = null)
        {
            int index = TabHeaders.ToList().FindIndex(x => x.Text == name && x.Tag == tag);

            if (index >= 0)
            {
                return(TabHeaders[index]);
            }
            return(null);
        }
        public override void Update(double secondsElapsed, InputUtilities inputUtils, SharpDX.Vector2 cursorPoint, bool checkMouse = false)
        {
            base.Update(secondsElapsed, inputUtils, cursorPoint, checkMouse);
            if (TabHeaders == null)
            {
                return;
            }

            float maxHeight = TabHeaders.Max(x => x.Height);

            this.Height = ChildControls[this.SelectedIndex].Height + maxHeight;
            this.ChildControls[this.SelectedIndex].Y = maxHeight;
            this.Width = TabHeaders[TabHeaders.Length - 1].X + TabHeaders[TabHeaders.Length - 1].Width;
        }
Ejemplo n.º 5
0
        public void AddTab(IPage page, string name = null, ImageSource image = null, string tag = null)
        {
            string txt = page.Title;

            ImageSource img = null;

            if (page.Image != null)
            {
                img = new BitmapImage(page.Image);
            }

            if (name != null)
            {
                txt = name;
            }
            if (image != null)
            {
                img = image;
            }

            TabHeader header = FindTab(page, txt, tag);

            if (header == null)
            {
                header       = new TabHeader();
                header.Text  = txt;
                header.Image = img;
                header.Tag   = tag;
                header.Page  = new TabPage(page);

                header.Clicked      += TabHeader_Clicked;
                header.CloseClicked += TabHeader_CloseClicked;
                header.Opened       += TabHeader_Opened;
                header.Closed       += TabHeader_Closed;
                page.SendData       += SendEventData;

                // Send Current User Data
                SendCurrentUser(page);

                // Send Current Device List
                SendCurrentDevices(page);

                TabHeaders.Add(header);

                header.Open(TabHeaders.Count == 1);
            }

            SelectTab(header);
        }
Ejemplo n.º 6
0
 public MainViewModel()
 {
     if (IsInDesignMode)
     {
         #region Tab页签
         TabHeaders.Add(new HeaderInfo("概况(O)"));
         TabHeaders.Add(new HeaderInfo("发送(S)"));
         TabHeaders.Add(new HeaderInfo("接收(R)"));
         TabHeaders.Add(new HeaderInfo("交易记录(T)"));
         #endregion
     }
     else
     {
         Init();
     }
 }
Ejemplo n.º 7
0
        private void TabHeader_Closed(object sender, EventArgs e)
        {
            var tab = (TabHeader)sender;

            if (TabHeaders.Contains(tab))
            {
                TabHeaders.Remove(tab);
            }

            tab.Clicked      -= TabHeader_Clicked;
            tab.CloseClicked -= TabHeader_CloseClicked;
            tab.Opened       -= TabHeader_Opened;
            tab.Closed       -= TabHeader_Closed;

            SetTabWidths();
        }
Ejemplo n.º 8
0
        public TabHeader FindTab(IPage page, string name = null, string tag = null)
        {
            string title = page.Title;

            if (name != null)
            {
                title = name;
            }

            int index = TabHeaders.ToList().FindIndex(x => x.Text == title && x.Tag == tag);

            if (index >= 0)
            {
                return(TabHeaders[index]);
            }
            return(null);
        }
Ejemplo n.º 9
0
        void Init()
        {
            if (AppSettingConfig.Default.AppConfig.MainWindowTabs != null)
            {
                AppSettingConfig.Default.AppConfig.MainWindowTabs.ForEach(x => TabHeaders.Add(x));
                if (TabHeaders.Any(x => x.IsSelected))
                {
                    _selectedTabItem = TabHeaders.FirstOrDefault(x => x.IsSelected);
                }
            }

            TabItemCheckedCommand = new RelayCommand <HeaderInfo>(OnTabItemChecked);
            PageCommand           = new RelayCommand <string>(OnPageCommand);
            ProgressCommand       = new RelayCommand(OnProgressClick);
            NetWorkCommand        = new RelayCommand <bool>(OnNetWorkClick);
            SetTaskInfos();
            RegeistMessenger <string>(OnGetRequestTab);
        }
Ejemplo n.º 10
0
        public int FindTabIndex(TabHeader header)
        {
            int index = TabHeaders.ToList().FindIndex(x => x.Text == header.Text);

            return(index);
        }
Ejemplo n.º 11
0
        public int FindTabIndex(string name, string tag = null)
        {
            int index = TabHeaders.ToList().FindIndex(x => x.Text == name && x.Tag == tag);

            return(index);
        }
Ejemplo n.º 12
0
    /// <summary>
    /// Prepares the layout of the web part.
    /// </summary>
    protected override void PrepareLayout()
    {
        StartLayout();

        Append("<div");

        // Width
        string width = this.Width;

        if (!string.IsNullOrEmpty(width))
        {
            Append(" style=\"width: ", width, "\"");
        }

        if (IsDesign)
        {
            Append(" id=\"", ShortClientID, "_env\">");

            Append("<table class=\"LayoutTable\" cellspacing=\"0\" style=\"width: 100%;\">");

            if (this.ViewMode == ViewModeEnum.Design)
            {
                Append("<tr><td class=\"LayoutHeader\" colspan=\"2\">");

                // Add header container
                AddHeaderContainer();

                Append("</td></tr>");
            }

            Append("<tr><td style=\"width: 100%;\">");
        }
        else
        {
            Append(">");
        }

        // Add the tabs
        TabContainer tabs = new TabContainer();

        tabs.ID = "tabs";
        AddControl(tabs);

        if (IsDesign)
        {
            Append("</td>");

            // Resizers
            if (AllowDesignMode)
            {
                // Width resizer
                Append("<td class=\"HorizontalResizer\" onmousedown=\"", GetHorizontalResizerScript("env", "Width", false, "tabs_body"), " return false;\">&nbsp;</td></tr>");

                // Height resizer
                Append("<tr><td class=\"VerticalResizer\" onmousedown=\"", GetVerticalResizerScript("tabs_body", "Height"), " return false;\">&nbsp;</td>");
                Append("<td class=\"BothResizer\" onmousedown=\"", GetHorizontalResizerScript("env", "Width", false, "tabs_body"), " ", GetVerticalResizerScript("tabs_body", "Height"), " return false;\">&nbsp;</td>");
            }

            Append("</tr>");
        }

        // Tab headers
        string[] headers = TabHeaders.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);

        if ((this.ActiveTabIndex >= 1) && (this.ActiveTabIndex <= Tabs))
        {
            tabs.ActiveTabIndex = this.ActiveTabIndex - 1;
        }

        for (int i = 1; i <= Tabs; i++)
        {
            // Create new tab
            TabPanel tab = new TabPanel();
            tab.ID = "tab" + i;

            // Prepare the header
            string header = null;
            if (headers.Length >= i)
            {
                header = ResHelper.LocalizeString(headers[i - 1]);
            }
            if (String.IsNullOrEmpty(header))
            {
                header = "Tab " + i;
            }

            tab.HeaderText = header;
            tabs.Tabs.Add(tab);

            AddZone(this.ID + "_" + i, header, tab);
        }

        // Setup the tabs
        tabs.ScrollBars = ControlsHelper.GetScrollbarsEnum(this.Scrollbars);

        if (!String.IsNullOrEmpty(this.TabsCSSClass))
        {
            tabs.CssClass = this.TabsCSSClass;
        }

        tabs.TabStripPlacement = (this.TabStripPlacement.ToLower() == "bottom" ? AjaxControlToolkit.TabStripPlacement.Bottom : AjaxControlToolkit.TabStripPlacement.Top);

        if (!String.IsNullOrEmpty(this.Height))
        {
            tabs.Height = new Unit(this.Height);
        }

        if (IsDesign)
        {
            // Footer
            if (AllowDesignMode)
            {
                Append("<tr><td class=\"LayoutFooter\" colspan=\"2\"><div class=\"LayoutFooterContent\">");

                Append("<div class=\"LayoutLeftActions\">");

                // Pane actions
                if (this.Tabs > 1)
                {
                    AppendRemoveAction(ResHelper.GetString("Layout.RemoveTab"), "Tabs");
                    Append(" ");
                }
                AppendAddAction(ResHelper.GetString("Layout.AddTab"), "Tabs");

                Append("</div></div></td></tr>");
            }

            Append("</table>");
        }

        Append("</div>");

        FinishLayout();
    }