Пример #1
0
        public static void ScaleDpi(this TabHeaderControl tab, Func <Bitmap, Bitmap> transformIcon)
        {
            _scaler.Setup(tab);
            tab.ScaleDpiFont();

            var iconsScaler = DpiScalers.Combine(
                new DpiScaler <TabHeaderControl, Bitmap>(
                    c => c.CloseIcon,
                    (c, bmp) => c.CloseIcon = bmp,
                    transformIcon),
                new DpiScaler <TabHeaderControl, Bitmap>(
                    c => c.CloseIconHovered,
                    (c, bmp) => c.CloseIconHovered = bmp,
                    transformIcon),
                new DpiScaler <TabHeaderControl, Bitmap>(
                    c => c.AddIcon,
                    (c, bmp) => c.AddIcon = bmp,
                    transformIcon),
                new DpiScaler <TabHeaderControl, Bitmap>(
                    c => c.DefaultIcon,
                    (c, bmp) => c.DefaultIcon = bmp,
                    transformIcon));

            iconsScaler.Setup(tab);

            _textWidthScaler.Setup(tab);
        }
Пример #2
0
        public void ApplyOrderFrom(TabHeaderControl other)
        {
            lock (_syncRoot)
            {
                var indices = TabIds.Select(id => other.TabIds.IndexOf(id))
                              .ToArray();

                if (indices.Any(i => i < 0 || i >= Count))
                {
                    return;
                }

                Texts  = Enumerable.Range(0, Count).Select(i => Texts[indices[i]]).ToList();
                TabIds = Enumerable.Range(0, Count).Select(i => TabIds[indices[i]]).ToList();
                Widths = Enumerable.Range(0, Count).Select(i => Widths[indices[i]]).ToList();
                Icons  = Enumerable.Range(0, Count).Select(i => Icons[indices[i]]).ToList();
            }

            Invalidate();
            TabReordered?.Invoke(this);
        }