protected internal void AddTabButton(TabButton tabButton) { if (tabButton == null) { throw new ArgumentNullException(nameof(tabButton), "tabButton should not be null."); } tabButtons.Add(tabButton); Add(tabButton); tabButtonGroup.Add(tabButton); tabButton.Clicked += (object sender, ClickedEventArgs e) => { int index = tabButtons.IndexOf(tabButton); if (SelectedIndex == index) { return; } SelectedIndex = index; if (TabButtonSelected != null) { TabButtonSelectedEventArgs args = new TabButtonSelectedEventArgs(SelectedIndex); TabButtonSelected(this, args); } }; if (SelectedIndex == -1) { tabButton.IsSelected = true; tabButton.SetTabButtonState(ControlState.Pressed); SelectedIndex = 0; if (TabButtonSelected != null) { TabButtonSelectedEventArgs args = new TabButtonSelectedEventArgs(SelectedIndex); TabButtonSelected(this, args); } } //TODO: To support non-unified tab button size. CalculateUnifiedTabButtonSize(); }
protected internal void AddTabButton(TabButton tabButton) { if (tabButton == null) { throw new ArgumentNullException(nameof(tabButton), "tabButton should not be null."); } tabButtons.Add(tabButton); Add(tabButton); tabButtonGroup.Add(tabButton); tabButton.Clicked += (object sender, ClickedEventArgs e) => { int index = tabButtons.IndexOf(tabButton); if (SelectedIndex == index) { return; } SelectedIndex = index; if (TabButtonSelected != null) { TabButtonSelectedEventArgs args = new TabButtonSelectedEventArgs(SelectedIndex); TabButtonSelected(this, args); } }; if (SelectedIndex == -1) { tabButton.IsSelected = true; SelectedIndex = 0; if (TabButtonSelected != null) { TabButtonSelectedEventArgs args = new TabButtonSelectedEventArgs(SelectedIndex); TabButtonSelected(this, args); } } }