RaUI/Source/ryControls/Sheng.Winform.Controls/Renderer/Office2010Renderer.cs
鑫Intel a1d6dce946 ### 2021-08-03更新
------
#### MyDbV4    V3.0.2108.0301
- *.[新增]新增内置HtmlAgilityPack组件。
2021-08-30 19:47:56 +08:00

191 lines
6.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace Sheng.Winform.Controls
{
/// <summary>
///
/// </summary>
public static class Office2010Renderer
{
/// <summary>
///
/// </summary>
/// <param name="bounds"></param>
/// <param name="baseColor"></param>
/// <returns></returns>
public static Brush CreateDisabledBackgroundBrush(Rectangle bounds, Color baseColor)
{
Color color = Color.FromArgb(75, baseColor);
SolidBrush brush = new SolidBrush(color);
return brush;
}
/// <summary>
///
/// </summary>
/// <param name="bounds"></param>
/// <param name="baseColor"></param>
/// <returns></returns>
public static Brush CreateBackgroundBrush(Rectangle bounds, Color baseColor)
{
Color color = baseColor;
Color[] colors = new Color[3];
colors[0] = Color.Transparent;
colors[1] = Color.Transparent;
colors[2] = Color.FromArgb(60, color);
//要向上移一个像素,否则上面会多出一个像素的空白,原因不明
//bounds.X -= 1;
//bounds.Y -= 1;
LinearGradientBrush brush = new LinearGradientBrush(bounds, Color.Empty, Color.Empty,
LinearGradientMode.Vertical);
//渐变位置百分比
float[] relativePositions = { 0f, 0.75f, 1f, };
ColorBlend colorBlend = new ColorBlend
{
Colors = colors,
Positions = relativePositions
};
brush.InterpolationColors = colorBlend;
return brush;
}
/// <summary>
///
/// </summary>
/// <param name="bounds"></param>
/// <param name="baseColor"></param>
/// <returns></returns>
public static Brush CreateBorderBrush(Rectangle bounds, Color baseColor)
{
Color color = baseColor;
Color colorStart = Color.FromArgb(125, color);
LinearGradientBrush brush = new LinearGradientBrush(bounds, colorStart, color,
LinearGradientMode.Vertical);
return brush;
}
/// <summary>
///
/// </summary>
/// <param name="bounds"></param>
/// <param name="baseColor"></param>
/// <returns></returns>
public static Brush CreateHoveredBackgroundBrush(Rectangle bounds, Color baseColor)
{
//过渡色的路径点和配色参见png设计图
//需要五个过度色点就是分成四段分别占34%,33%,16%,17%
Color color = baseColor;
Color[] colors = new Color[5];
colors[0] = Color.FromArgb(125, color);
colors[1] = color;
colors[2] = color;
colors[3] = Color.FromArgb(221, color);
colors[4] = Color.Transparent;
//要向上移一个像素,否则上面会多出一个像素的空白,原因不明
bounds.X -= 1;
bounds.Y -= 1;
LinearGradientBrush brush = new LinearGradientBrush(bounds, Color.Empty, Color.Empty,
LinearGradientMode.Vertical);
//渐变位置百分比
float[] relativePositions = { 0f, 0.20f, 0.67f, 0.75f, 1f, };
ColorBlend colorBlend = new ColorBlend
{
Colors = colors,
Positions = relativePositions
};
brush.InterpolationColors = colorBlend;
return brush;
}
/// <summary>
///
/// </summary>
/// <param name="bounds"></param>
/// <param name="baseColor"></param>
/// <returns></returns>
public static Brush CreateHoveredBorderBrush(Rectangle bounds, Color baseColor)
{
Color color = baseColor;
Color colorEnd = Color.FromArgb(125, color);
LinearGradientBrush brush = new LinearGradientBrush(bounds, color, colorEnd,
LinearGradientMode.Vertical);
return brush;
}
/// <summary>
///
/// </summary>
/// <param name="bounds"></param>
/// <param name="baseColor"></param>
/// <returns></returns>
public static Brush CreateSelectedBackgroundBrush(Rectangle bounds, Color baseColor)
{
//过渡色的路径点和配色参见png设计图
//需要五个过度色点就是分成四段分别占34%,33%,16%,17%
Color color = baseColor;
Color[] colors = new Color[5];
colors[0] = color;
colors[1] = color;
colors[2] = color;
colors[3] = Color.FromArgb(221, color);
colors[4] = Color.Transparent;
//要向上移一个像素,否则上面会多出一个像素的空白,原因不明
//bounds.X -= 1;
//bounds.Y -= 1;
LinearGradientBrush brush = new LinearGradientBrush(bounds, Color.Empty, Color.Empty,
LinearGradientMode.Vertical);
//渐变位置百分比
float[] relativePositions = { 0f, 0.30f, 0.67f, 0.75f, 1f };
ColorBlend colorBlend = new ColorBlend
{
Colors = colors,
Positions = relativePositions
};
brush.InterpolationColors = colorBlend;
return brush;
}
/// <summary>
///
/// </summary>
/// <param name="bounds"></param>
/// <param name="baseColor"></param>
/// <returns></returns>
public static Brush CreateSelectedBorderBrush(Rectangle bounds, Color baseColor)
{
Color color = baseColor;
Color colorEnd = Color.FromArgb(125, color);
LinearGradientBrush brush = new LinearGradientBrush(bounds, color, colorEnd,
LinearGradientMode.Vertical);
return brush;
}
}
}