예제 #1
0
        private LinearGradientBrush RefreshTrueColorLinearGradient(uint alpha = 255, bool replace = true)
        {
            if (UseDefaultBackColor)
            {
                return(RefreshTrueColorLinearGradientDefault(alpha, replace));
            }
            LinearGradientBrush ret;
            uint alphaMask = 0x01000000 * alpha;

            SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder br1 = new SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder(new Point(0, SliderRect.Top), new Point(0, SliderRect.Bottom), TrueColor, TrueColor);
            Color  myTrueColor = Color.FromArgb((int)alpha, TrueColor);
            UInt32 shadowColor = alphaMask | (0x888888 & (UInt32)TrueColor.ToArgb());

            br1.AddPosition(0).AddColor(myTrueColor)
            .AddPosition(0.40).AddColor(myTrueColor)
            .AddPosition(1).AddColor(shadowColor);
            ret = br1.Build();
            if (replace)
            {
                if (_TrueColorLinearGradient != null)
                {
                    _TrueColorLinearGradient.Dispose();
                    _TrueColorLinearGradient = null;
                }
                _TrueColorLinearGradient = ret;
            }
            return(ret);
        }
예제 #2
0
        private LinearGradientBrush ThumbColorLinearGradientTrueDefault(int x, int y, int r, int alpha = 255)
        {
            UInt32 shadowColor = 0xff000000 | 0xff000000 & (UInt32)ThumbColorTrue.ToArgb();
            Color  alphaColor  = Color.FromArgb(alpha, ThumbColorTrue);
            uint   alphaMask   = 0x01000000 * (uint)alpha;

            SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder br1 = new SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder(new Point(x, y - r), new Point(x, y + r), alphaColor, alphaColor);
            br1.AddPosition(0).AddColor(0xb3ffb3 | (alphaMask))
            .AddPosition(0.40).AddColor(0x80ff80 | (alphaMask))
            .AddPosition(1).AddColor(0x00bf00 | (alphaMask));
            return(br1.Build());
        }
예제 #3
0
        private LinearGradientBrush ThumbColorLinearGradient(int x, int y, int r, int alpha = 255)
        {
            if (DefaultThumbColor)
            {
                return(ThumbColorLinearGradientDefault(x, y, r, alpha));
            }
            UInt32 shadowColor = 0xff000000 | 0xffcccccc & (UInt32)ThumbColor.ToArgb();
            Color  alphaColor  = Color.FromArgb(alpha, ThumbColor);

            SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder br1 = new SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder(new Point(x - r, y - r), new Point(x + r, y + r), alphaColor, alphaColor);
            br1.AddPosition(0).AddColor(alphaColor)
            .AddPosition(1).AddColor(shadowColor);
            return(br1.Build());
        }
예제 #4
0
        private LinearGradientBrush RefreshFalseColorLinearGradientDefault(uint alpha = 255, bool replace = true)
        {
            LinearGradientBrush ret;

            SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder br1 = new SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder(new Point(0, SliderRect.Top), new Point(0, SliderRect.Bottom), FalseColor, FalseColor);
            uint   alphaMask   = 0x01000000 * alpha;
            UInt32 shadowColor = 0xff000000 | 0xff888888 & (UInt32)FalseColor.ToArgb();

            br1.AddPosition(0).AddColor(0x7c7c7c | alphaMask)
            .AddPosition(0.40).AddColor(0xa0a0a0 | alphaMask)
            .AddPosition(1).AddColor(0xa0a0a0 | alphaMask);
            ret = br1.Build();
            if (replace)
            {
                if (_FalseColorLinearGradient != null)
                {
                    _FalseColorLinearGradient.Dispose();
                    _FalseColorLinearGradient = null;
                }
                _FalseColorLinearGradient = ret;
            }
            return(ret);
        }