Beispiel #1
0
        /// <summary>
        /// Asynchronously fades from the current DWM color to <paramref name="newColor" />.
        /// </summary>
        /// <param name="newColor">The new color to fade to.</param>
        public static async Task BeginChangeColor(Color newColor, float duration = DURATION)
        {
            await Task.Run(() =>
            {
                int ticks = (int)(FRAMES_PER_SECOND * DURATION); // Round to the nearest whole step

                DwmColorParams p = new DwmColorParams();
                DwmpGetColorizationParameters(out p);

                Color startColor = Color.FromArgb((int)p.ColorizationColor);

                if (newColor == startColor)
                {
                    return;
                }

                ColorTransform ct = new ColorTransform(startColor, newColor, ticks);

                while (ct.Transform())
                {
                    if (p.ColorizationColor != (uint)ct.GetColor().ToArgb())
                    {
                        p.ColorizationColor     = (uint)ct.GetColor().ToArgb();
                        p.ColorizationAfterglow = p.ColorizationColor;
                        DwmpSetColorizationParameters(ref p, true);
                        Thread.Sleep((int)((1.00 / FRAMES_PER_SECOND) * 1000)); // Sleep for one "tick" (based on FPS).
                    }
                }
            });
        }
        /// <summary>
        /// Asynchronously fades from the current DWM color to <paramref name="newColor" />.
        /// </summary>
        /// <param name="newColor">The new color to fade to.</param>
        public static async Task BeginChangeColor(Color newColor, float duration = DURATION)
        {
            await Task.Run(() =>
            {
                int ticks = (int)(FRAMES_PER_SECOND * DURATION); // Round to the nearest whole step

                DwmColorParams p = new DwmColorParams();
                DwmpGetColorizationParameters(out p);

                Color startColor = Color.FromArgb((int)p.ColorizationColor);

                if (newColor == startColor)
                {
                    return;
                }

                ColorTransform ct = new ColorTransform(startColor, newColor, ticks);

                while (ct.Transform())
                {
                    if (p.ColorizationColor != (uint)ct.GetColor().ToArgb())
                    {
                        p.ColorizationColor = (uint)ct.GetColor().ToArgb();
                        p.ColorizationAfterglow = p.ColorizationColor;
                        DwmpSetColorizationParameters(ref p, true);
                        Thread.Sleep((int)((1.00 / FRAMES_PER_SECOND) * 1000)); // Sleep for one "tick" (based on FPS).
                    }
                }
            });
        }
        /// <summary>
        /// Retrieves the current DWM color.
        /// </summary>
        /// <returns>The current DWM color setting.</returns>
        public static Color GetColor()
        {
            DwmColorParams p = new DwmColorParams();
            DwmpGetColorizationParameters(out p);

            return Color.FromArgb((int)p.ColorizationColor);
        }
Beispiel #4
0
        /// <summary>
        /// Retrieves the current DWM color.
        /// </summary>
        /// <returns>The current DWM color setting.</returns>
        public static Color GetColor()
        {
            DwmColorParams p = new DwmColorParams();

            DwmpGetColorizationParameters(out p);

            return(Color.FromArgb((int)p.ColorizationColor));
        }
 /// <summary>
 /// Sets the Windows DWM color.
 /// </summary>
 /// <param name="newColor">The color to set.</param>
 public static void SetColor(Color newColor)
 {
     DwmColorParams p = new DwmColorParams();
     DwmpGetColorizationParameters(out p);
     p.ColorizationColor = (uint)newColor.ToArgb();
     p.ColorizationAfterglow = p.ColorizationColor;
     DwmpSetColorizationParameters(ref p, true);
 }
Beispiel #6
0
        /// <summary>
        /// Sets the Windows DWM color.
        /// </summary>
        /// <param name="newColor">The color to set.</param>
        public static void SetColor(Color newColor)
        {
            DwmColorParams p = new DwmColorParams();

            DwmpGetColorizationParameters(out p);
            p.ColorizationColor     = (uint)newColor.ToArgb();
            p.ColorizationAfterglow = p.ColorizationColor;
            DwmpSetColorizationParameters(ref p, true);
        }
Beispiel #7
0
 private static extern int DwmpGetColorizationParameters(out DwmColorParams dcpParams);
Beispiel #8
0
 private static extern int DwmpSetColorizationParameters(ref DwmColorParams dcpParams, bool alwaysTrue);
 private static extern int DwmpGetColorizationParameters(out DwmColorParams dcpParams);
 private static extern int DwmpSetColorizationParameters(ref DwmColorParams dcpParams, bool alwaysTrue);