public async Task TabButtonOnRelayoutWithText() { tlog.Debug(tag, $"TabButtonOnRelayoutWithText START"); TabButtonStyle style = new TabButtonStyle() { Size = new Size(100, 200), BackgroundColor = Color.Cyan, Text = new TextLabelStyle() { BackgroundColor = Color.Red, } }; var testingTarget = new MyTabButton(); Assert.IsNotNull(testingTarget, "null handle"); Assert.IsInstanceOf <TabButton>(testingTarget, "Should return TabButton instance."); testingTarget.IconURL = image_path; NUIApplication.GetDefaultWindow().GetDefaultLayer().Add(testingTarget); testingTarget.Size = new Size(50, 80); testingTarget.BackgroundColor = Color.Blue; await Task.Delay(200); NUIApplication.GetDefaultWindow().GetDefaultLayer().Remove(testingTarget); testingTarget.Dispose(); tlog.Debug(tag, $"TabButtonOnRelayoutWithText END (OK)"); }
public void TabButtonStyleConstructor() { tlog.Debug(tag, $"TabButtonStyleConstructor START"); TabButtonStyle style = new TabButtonStyle() { BackgroundColor = Color.Cyan, }; var testingTarget = new TabButtonStyle(style); Assert.IsNotNull(testingTarget, "null handle"); Assert.IsInstanceOf <TabButtonStyle>(testingTarget, "Should return TabButtonStyle instance."); testingTarget.Dispose(); tlog.Debug(tag, $"TabButtonStyleConstructor END (OK)"); }
/// <summary> /// TabButtonControl クラスのインスタンスを初期化。 /// </summary> public TabButtonControl() { // // TODO: コンストラクタ ロジックをここに追加してください。 // buttons = new TabButtonCollection(this); borderStyle = Border3DStyle.Adjust; buttonStyle = TabButtonStyle.Flat; autoAdjustButtonSize = true; autoAdjustControlHeight = true; wrappable = true; imageList = null; hotTrack = true; hotTrackColor = SystemColors.ControlDark; buttonSize = new Size(80, 20); // ちらつきを押さえるために各スタイルを設定 SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true); }
/// <summary> /// В зависимости от свойства Alignment кнопки размещаются в /// соответствующем месте NetTabControl /// Количество и тип кнопок определяет свойство PageManager /// </summary> void CalculateLocationButtons() { if (buttons == null) { return; } foreach (TabButtonStyle style in buttons.Keys) { switch (buttons[style].ButtonAction) { case TabButtonAction.None: buttons[style].Visible = true; break; case TabButtonAction.Action: buttons[style].Visible = (buttonStyles == TabButtonStyles.All) || (buttonStyles == TabButtonStyles.Context); break; case TabButtonAction.Close: buttons[style].Visible = closeButton; break; case TabButtonAction.Down: case TabButtonAction.Right: case TabButtonAction.Up: case TabButtonAction.Left: buttons[style].Visible = (buttonStyles == TabButtonStyles.All) || (buttonStyles == TabButtonStyles.NextPrev); break; } } int x = 0; int y = 0; int d = (tabHeight - NetTabButton.SizeButton + 1) >> 1; int dx = 0; int dy = 0; AnchorStyles styles = AnchorStyles.None; switch (this.Alignment) { case TabAlignment.Top: y = d; dx = -NetTabButton.SizeButton; x = Width - 3 + dx; buttons[TabButtonStyle.LeftDown].ButtonAction = TabButtonAction.Left; buttons[TabButtonStyle.RightUp].ButtonAction = TabButtonAction.Right; styles = AnchorStyles.Right | AnchorStyles.Top; break; case TabAlignment.Bottom: y = Height - this.tabHeight - 1 + d; dx = -NetTabButton.SizeButton; x = Width - 3 + dx; buttons[TabButtonStyle.LeftDown].ButtonAction = TabButtonAction.Left; buttons[TabButtonStyle.RightUp].ButtonAction = TabButtonAction.Right; styles = AnchorStyles.Right | AnchorStyles.Bottom; break; case TabAlignment.Left: x = d; dy = -NetTabButton.SizeButton; y = Height - 3 + dy; buttons[TabButtonStyle.LeftDown].ButtonAction = TabButtonAction.Up; buttons[TabButtonStyle.RightUp].ButtonAction = TabButtonAction.Down; styles = AnchorStyles.Left | AnchorStyles.Bottom; break; case TabAlignment.Right: x = Width - this.tabHeight - 1 + d; dy = -NetTabButton.SizeButton; y = Height - 3 + dy; buttons[TabButtonStyle.LeftDown].ButtonAction = TabButtonAction.Up; buttons[TabButtonStyle.RightUp].ButtonAction = TabButtonAction.Down; styles = AnchorStyles.Right | AnchorStyles.Bottom; break; } for (int i = 3; i >= 0; i--) { TabButtonStyle style = (TabButtonStyle)i; if (buttons[style].Visible) { buttons[style].Location = new Point(x, y); buttons[style].Anchor = styles; x += dx; y += dy; } } }