RaUI/Source/ryControls/HtmlRenderer/Adapters/PenAdapter.cs
zilinsoft 3262955f2f ### 2023-11-07更新
------
#### RaUIV4    V4.0.2311.0701
- *.[全新]整合了MyDb、ryControls、MyDb_MySQL等dll文件到RaUI一个项目。
- *.[新增]新增ApkOp类,可以轻松获取APK信息。
- *.[新增]新增JsonExt扩展类,让Json操作更简单。
- *.[新增]新增WebP类,可以支持webp格式的图片。
- *.[改进]ryQuickSQL中的AddField方法改为自动替换已存在的同名值。
- *.[修复]ryQuickSQL中的AddFieldCalc方法无法正常计算的BUG。
2023-11-07 16:37:53 +08:00

84 lines
2.5 KiB
C#

// "Therefore those skilled at the unorthodox
// are infinite as heaven and earth,
// inexhaustible as the great rivers.
// When they come to an end,
// they begin again,
// like the days and months;
// they die and are reborn,
// like the four seasons."
//
// - Sun Tsu,
// "The Art of War"
using System.Drawing;
using TheArtOfDev.HtmlRenderer.Adapters.Entities;
using TheArtOfDev.HtmlRenderer.Adapters;
namespace TheArtOfDev.HtmlRenderer.WinForms.Adapters
{
/// <summary>
/// Adapter for WinForms pens objects for core.
/// </summary>
internal sealed class PenAdapter : RPen
{
/// <summary>
/// The actual WinForms brush instance.
/// </summary>
private readonly Pen _pen;
/// <summary>
/// Init.
/// </summary>
public PenAdapter(Pen pen)
{
_pen = pen;
}
/// <summary>
/// The actual WinForms brush instance.
/// </summary>
public Pen Pen
{
get { return _pen; }
}
public override double Width
{
get { return _pen.Width; }
set { _pen.Width = (float)value; }
}
public override RDashStyle DashStyle
{
set
{
switch (value)
{
case RDashStyle.Solid:
_pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;
break;
case RDashStyle.Dash:
_pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
if (Width < 2)
_pen.DashPattern = new[] { 4, 4f }; // better looking
break;
case RDashStyle.Dot:
_pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
break;
case RDashStyle.DashDot:
_pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot;
break;
case RDashStyle.DashDotDot:
_pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot;
break;
case RDashStyle.Custom:
_pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Custom;
break;
default:
_pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;
break;
}
}
}
}
}