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[] { }); } }
void OnGetRequestTab(string tabName) { if (!TabHeaders.Any(x => x.PageName == tabName)) { return; } var headerInfo = TabHeaders.FirstOrDefault(x => x.PageName == tabName); OnTabItemChecked(headerInfo); }
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; }
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); }
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(); } }
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(); }
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); }
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); }
public int FindTabIndex(TabHeader header) { int index = TabHeaders.ToList().FindIndex(x => x.Text == header.Text); return(index); }
public int FindTabIndex(string name, string tag = null) { int index = TabHeaders.ToList().FindIndex(x => x.Text == name && x.Tag == tag); return(index); }
/// <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;\"> </td></tr>"); // Height resizer Append("<tr><td class=\"VerticalResizer\" onmousedown=\"", GetVerticalResizerScript("tabs_body", "Height"), " return false;\"> </td>"); Append("<td class=\"BothResizer\" onmousedown=\"", GetHorizontalResizerScript("env", "Width", false, "tabs_body"), " ", GetVerticalResizerScript("tabs_body", "Height"), " return false;\"> </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(); }