Exemple #1
0
        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)");
        }
Exemple #2
0
        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;
                }
            }
        }