* 重构字体
This commit is contained in:
parent
0b8c69b095
commit
7ae4bb613d
@ -40,8 +40,8 @@ namespace Sunny.UI
|
||||
Width = 400;
|
||||
Height = 300;
|
||||
|
||||
SubFont = UIFontColor.SubFont();
|
||||
LegendFont = UIFontColor.SubFont();
|
||||
SubFont = UIStyles.SubFont();
|
||||
LegendFont = UIStyles.SubFont();
|
||||
|
||||
tip.Parent = this;
|
||||
tip.Height = 32;
|
||||
@ -50,7 +50,7 @@ namespace Sunny.UI
|
||||
tip.Top = 1;
|
||||
tip.StyleCustomMode = true;
|
||||
tip.Style = UIStyle.Custom;
|
||||
tip.Font = UIFontColor.SubFont();
|
||||
tip.Font = UIStyles.SubFont();
|
||||
tip.RadiusSides = UICornerRadiusSides.None;
|
||||
tip.Visible = false;
|
||||
|
||||
@ -65,8 +65,7 @@ namespace Sunny.UI
|
||||
private void Tip_VisibleChanged(object sender, EventArgs e)
|
||||
{
|
||||
tip.IsScaled = true;
|
||||
float size = SubFont != null ? SubFont.Size : UIFontColor.SubFontSize;
|
||||
tip.Font = this.Font.DPIScaleFont(size);
|
||||
tip.Font = this.Font.DPIScaleFont(UIStyles.DefaultSubFontSize);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
@ -206,7 +205,7 @@ namespace Sunny.UI
|
||||
{
|
||||
get
|
||||
{
|
||||
float size = SubFont != null ? SubFont.Size : UIFontColor.SubFontSize;
|
||||
float size = UIStyles.DefaultSubFontSize;
|
||||
|
||||
if (tmpFont == null || !tmpFont.Size.EqualsFloat(size / UIDPIScale.DPIScale()))
|
||||
{
|
||||
@ -224,7 +223,7 @@ namespace Sunny.UI
|
||||
{
|
||||
get
|
||||
{
|
||||
float size = LegendFont != null ? LegendFont.Size : UIFontColor.SubFontSize;
|
||||
float size = UIStyles.DefaultSubFontSize;
|
||||
|
||||
if (tmpLegendFont == null || !tmpLegendFont.Size.EqualsFloat(size / UIDPIScale.DPIScale()))
|
||||
{
|
||||
|
@ -47,7 +47,7 @@ namespace Sunny.UI
|
||||
public static class UIMessageTip
|
||||
{
|
||||
//默认字体。当样式中的Font==null时用该字体替换
|
||||
static readonly Font DefaultFont = UIFontColor.Font();
|
||||
static readonly Font DefaultFont = UIStyles.Font();
|
||||
//文本格式。用于测量和绘制
|
||||
static readonly StringFormat DefStringFormat = StringFormat.GenericTypographic;
|
||||
|
||||
@ -634,7 +634,7 @@ namespace Sunny.UI
|
||||
Width = 2
|
||||
};
|
||||
IconSpacing = 5;
|
||||
TextFont = UIFontColor.Font();
|
||||
TextFont = UIStyles.Font();
|
||||
var fontName = TextFont.Name;
|
||||
if (fontName == "宋体") { TextOffset = new Point(1, 1); }
|
||||
TextColor = Color.Black;
|
||||
|
@ -45,7 +45,7 @@ namespace Sunny.UI
|
||||
Padding = new Padding(0, 0, 30, 2);
|
||||
|
||||
edit.AutoSize = false;
|
||||
edit.Font = UIFontColor.Font();
|
||||
edit.Font = UIStyles.Font();
|
||||
edit.Left = 4;
|
||||
edit.Top = 3;
|
||||
edit.Text = String.Empty;
|
||||
|
@ -195,7 +195,7 @@ namespace Sunny.UI
|
||||
}
|
||||
}
|
||||
|
||||
private Font tipsFont = UIFontColor.SubFont();
|
||||
private Font tipsFont = UIStyles.SubFont();
|
||||
|
||||
/// <summary>
|
||||
/// 角标文字字体
|
||||
|
@ -33,7 +33,7 @@ namespace Sunny.UI
|
||||
|
||||
public UIContextMenuStrip()
|
||||
{
|
||||
Font = UIFontColor.Font();
|
||||
Font = UIStyles.Font();
|
||||
RenderMode = ToolStripRenderMode.Professional;
|
||||
Renderer = new ToolStripProfessionalRenderer(ColorTable);
|
||||
Version = UIGlobal.Version;
|
||||
|
@ -47,7 +47,7 @@ namespace Sunny.UI
|
||||
public UIControl()
|
||||
{
|
||||
Version = UIGlobal.Version;
|
||||
base.Font = UIFontColor.Font();
|
||||
base.Font = UIStyles.Font();
|
||||
Size = new Size(100, 35);
|
||||
base.MinimumSize = new Size(1, 1);
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ namespace Sunny.UI
|
||||
{
|
||||
BackgroundColor = UIColor.White;
|
||||
GridColor = UIColor.Blue;
|
||||
base.Font = UIFontColor.Font();
|
||||
base.Font = UIStyles.Font();
|
||||
base.DoubleBuffered = true;
|
||||
|
||||
VBar.Parent = this;
|
||||
@ -91,17 +91,17 @@ namespace Sunny.UI
|
||||
ColumnHeadersDefaultCellStyle.BackColor = UIColor.Blue;
|
||||
ColumnHeadersDefaultCellStyle.ForeColor = UIColor.White;
|
||||
ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.True;
|
||||
ColumnHeadersDefaultCellStyle.Font = UIFontColor.Font();
|
||||
ColumnHeadersDefaultCellStyle.Font = UIStyles.Font();
|
||||
|
||||
//行头部颜色
|
||||
RowHeadersDefaultCellStyle.BackColor = UIColor.LightBlue;
|
||||
RowHeadersDefaultCellStyle.ForeColor = UIFontColor.Primary;
|
||||
RowHeadersDefaultCellStyle.SelectionBackColor = UIColor.Blue;
|
||||
RowHeadersDefaultCellStyle.SelectionForeColor = Color.White;
|
||||
RowHeadersDefaultCellStyle.Font = UIFontColor.Font();
|
||||
RowHeadersDefaultCellStyle.Font = UIStyles.Font();
|
||||
|
||||
RowsDefaultCellStyle.Font = UIFontColor.Font();
|
||||
DefaultCellStyle.Font = UIFontColor.Font();
|
||||
RowsDefaultCellStyle.Font = UIStyles.Font();
|
||||
DefaultCellStyle.Font = UIStyles.Font();
|
||||
|
||||
//标题行行高,与OnColumnAdded事件配合
|
||||
ColumnHeadersHeight = 32;
|
||||
|
@ -40,7 +40,7 @@ namespace Sunny.UI
|
||||
Height = 29;
|
||||
RadiusSides = UICornerRadiusSides.None;
|
||||
|
||||
Font = UIFontColor.Font();
|
||||
Font = UIStyles.Font();
|
||||
foreColor = UIStyles.Blue.DataGridViewFooterForeColor;
|
||||
fillColor = UIStyles.Blue.PlainColor;
|
||||
rectColor = UIStyles.Blue.RectColor;
|
||||
|
@ -42,7 +42,7 @@ namespace Sunny.UI
|
||||
{
|
||||
//设置为单选边框
|
||||
BorderStyle = BorderStyle.FixedSingle;
|
||||
base.Font = UIFontColor.Font();
|
||||
base.Font = UIStyles.Font();
|
||||
base.ForeColor = UIFontColor.Primary;
|
||||
Width = 150;
|
||||
base.MaxLength = 32767;
|
||||
|
@ -146,7 +146,7 @@ namespace Sunny.UI
|
||||
}
|
||||
}
|
||||
|
||||
private Font tipsFont = UIFontColor.SubFont();
|
||||
private Font tipsFont = UIStyles.SubFont();
|
||||
|
||||
[Description("角标文字字体"), Category("SunnyUI")]
|
||||
[DefaultValue(typeof(Font), "微软雅黑, 9pt")]
|
||||
|
@ -209,7 +209,7 @@ namespace Sunny.UI
|
||||
Height = 35;
|
||||
Version = UIGlobal.Version;
|
||||
Cursor = Cursors.Hand;
|
||||
base.Font = UIFontColor.Font();
|
||||
base.Font = UIStyles.Font();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -36,7 +36,7 @@ namespace Sunny.UI
|
||||
{
|
||||
public UILabel()
|
||||
{
|
||||
base.Font = UIFontColor.Font();
|
||||
base.Font = UIStyles.Font();
|
||||
Version = UIGlobal.Version;
|
||||
base.TextAlign = ContentAlignment.MiddleLeft;
|
||||
foreColor = UIStyles.Blue.LabelForeColor;
|
||||
@ -181,7 +181,7 @@ namespace Sunny.UI
|
||||
{
|
||||
public UILinkLabel()
|
||||
{
|
||||
Font = UIFontColor.Font();
|
||||
Font = UIStyles.Font();
|
||||
LinkBehavior = LinkBehavior.AlwaysUnderline;
|
||||
Version = UIGlobal.Version;
|
||||
|
||||
|
@ -191,7 +191,7 @@ namespace Sunny.UI
|
||||
//
|
||||
BorderStyle = BorderStyle.FixedSingle;
|
||||
DrawMode = DrawMode.OwnerDrawFixed;
|
||||
Font = UIFontColor.Font();
|
||||
Font = UIStyles.Font();
|
||||
IntegralHeight = false;
|
||||
ItemHeight = 25;
|
||||
Size = new Size(150, 200);
|
||||
|
@ -56,7 +56,7 @@ namespace Sunny.UI
|
||||
|
||||
DoubleBuffered = true;
|
||||
UpdateStyles();
|
||||
Font = UIFontColor.Font();
|
||||
Font = UIStyles.Font();
|
||||
|
||||
NavBarMenu.VisibleChanged += NavBarMenu_VisibleChanged;
|
||||
Dock = DockStyle.Top;
|
||||
@ -351,7 +351,7 @@ namespace Sunny.UI
|
||||
set => NavBarMenu.ImageList = value;
|
||||
}
|
||||
|
||||
private Font dropMenuFont = UIFontColor.Font();
|
||||
private Font dropMenuFont = UIStyles.Font();
|
||||
|
||||
/// <summary>
|
||||
/// 标题字体
|
||||
|
@ -72,7 +72,7 @@ namespace Sunny.UI
|
||||
//ShowRootLines = false;
|
||||
|
||||
DoubleBuffered = true;
|
||||
Font = UIFontColor.Font();
|
||||
Font = UIStyles.Font();
|
||||
//CheckBoxes = false;
|
||||
ItemHeight = 50;
|
||||
BackColor = Color.FromArgb(56, 56, 56);
|
||||
@ -340,7 +340,7 @@ namespace Sunny.UI
|
||||
}
|
||||
}
|
||||
|
||||
private Font tipsFont = UIFontColor.SubFont();
|
||||
private Font tipsFont = UIStyles.SubFont();
|
||||
|
||||
[Description("角标文字字体"), Category("SunnyUI")]
|
||||
[DefaultValue(typeof(Font), "微软雅黑, 9pt")]
|
||||
|
@ -39,7 +39,7 @@ namespace Sunny.UI
|
||||
public UIPanel()
|
||||
{
|
||||
InitializeComponent();
|
||||
base.Font = UIFontColor.Font();
|
||||
base.Font = UIStyles.Font();
|
||||
base.MinimumSize = new System.Drawing.Size(1, 1);
|
||||
showText = true;
|
||||
SetStyleFlags(true, false, true);
|
||||
|
@ -36,7 +36,7 @@ namespace Sunny.UI
|
||||
{
|
||||
public UISmoothLabel()
|
||||
{
|
||||
base.Font = UIFontColor.Font(36);
|
||||
base.Font = UIStyles.Font();
|
||||
Version = UIGlobal.Version;
|
||||
|
||||
foreColor = UIStyles.Blue.SmoothLabelForeColor;
|
||||
|
@ -61,7 +61,7 @@ namespace Sunny.UI
|
||||
|
||||
ItemSize = new Size(150, 40);
|
||||
DrawMode = TabDrawMode.OwnerDrawFixed;
|
||||
Font = UIFontColor.Font();
|
||||
Font = UIStyles.Font();
|
||||
AfterSetFillColor(FillColor);
|
||||
Version = UIGlobal.Version;
|
||||
|
||||
@ -149,7 +149,7 @@ namespace Sunny.UI
|
||||
}
|
||||
}
|
||||
|
||||
private Font tipsFont = UIFontColor.SubFont();
|
||||
private Font tipsFont = UIStyles.SubFont();
|
||||
|
||||
[Description("角标文字字体"), Category("SunnyUI")]
|
||||
[DefaultValue(typeof(Font), "微软雅黑, 9pt")]
|
||||
|
@ -42,7 +42,7 @@ namespace Sunny.UI
|
||||
|
||||
base.ItemSize = new Size(40, 200);
|
||||
DrawMode = TabDrawMode.OwnerDrawFixed;
|
||||
Font = UIFontColor.Font();
|
||||
Font = UIStyles.Font();
|
||||
AfterSetFillColor(FillColor);
|
||||
Size = new Size(450, 270);
|
||||
Version = UIGlobal.Version;
|
||||
|
@ -72,7 +72,7 @@ namespace Sunny.UI
|
||||
SetStyleFlags(true, true, true);
|
||||
|
||||
ShowText = false;
|
||||
Font = UIFontColor.Font();
|
||||
Font = UIStyles.Font();
|
||||
MinimumSize = new Size(1, 16);
|
||||
|
||||
Width = 150;
|
||||
|
@ -46,7 +46,7 @@ namespace Sunny.UI
|
||||
InitializeComponent();
|
||||
Version = UIGlobal.Version;
|
||||
AutoScaleMode = AutoScaleMode.None;
|
||||
base.Font = UIFontColor.Font();
|
||||
base.Font = UIStyles.Font();
|
||||
base.MinimumSize = new System.Drawing.Size(1, 1);
|
||||
SetStyleFlags(true, false);
|
||||
}
|
||||
|
@ -558,7 +558,7 @@ namespace Sunny.UI
|
||||
/// <summary>
|
||||
/// 标题字体
|
||||
/// </summary>
|
||||
private Font titleFont = UIFontColor.Font();
|
||||
private Font titleFont = UIStyles.Font();
|
||||
|
||||
/// <summary>
|
||||
/// 标题字体
|
||||
|
@ -841,7 +841,7 @@ namespace Sunny.UI
|
||||
/// <summary>
|
||||
/// 标题字体
|
||||
/// </summary>
|
||||
private Font titleFont = UIFontColor.Font();
|
||||
private Font titleFont = UIStyles.Font();
|
||||
|
||||
/// <summary>
|
||||
/// 标题字体
|
||||
|
@ -23,11 +23,9 @@
|
||||
* 2021-10-16: V3.0.8 增加系统DPI缩放自适应
|
||||
******************************************************************************/
|
||||
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Sunny.UI
|
||||
@ -309,93 +307,6 @@ namespace Sunny.UI
|
||||
/// </summary>
|
||||
public static class UIFontColor
|
||||
{
|
||||
private static readonly ConcurrentDictionary<string, byte> FontCharSets = new ConcurrentDictionary<string, byte>();
|
||||
|
||||
//GdiCharSet
|
||||
//一个字节值,该值指定使用此 Font 字符集的 GDI 字符集。 默认值为 1。
|
||||
//字符集 值
|
||||
//ANSI 0
|
||||
//DEFAULT 1
|
||||
//象征 2
|
||||
//SHIFTJIS 128
|
||||
//HANGEUL 129
|
||||
//HANGUL 129
|
||||
//GB2312 134
|
||||
//中国BIG5 136
|
||||
//OEM 255
|
||||
//JOHAB 130
|
||||
//希伯来语 177
|
||||
//阿拉伯语 178
|
||||
//希腊语 161
|
||||
//土耳其语 162
|
||||
//越南语 163
|
||||
//泰语 222
|
||||
//EASTEUROPE 238
|
||||
//俄语 204
|
||||
//MAC 77
|
||||
//波罗的海 186
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
|
||||
internal class LOGFONT
|
||||
{
|
||||
public int lfHeight;
|
||||
public int lfWidth;
|
||||
public int lfEscapement;
|
||||
public int lfOrientation;
|
||||
public int lfWeight;
|
||||
public byte lfItalic;
|
||||
public byte lfUnderline;
|
||||
public byte lfStrikeOut;
|
||||
public byte lfCharSet;
|
||||
public byte lfOutPrecision;
|
||||
public byte lfClipPrecision;
|
||||
public byte lfQuality;
|
||||
public byte lfPitchAndFamily;
|
||||
[MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
|
||||
public string lfFaceName;
|
||||
}
|
||||
|
||||
internal static byte GetGdiCharSet(string fontName, float fontSize)
|
||||
{
|
||||
if (FontCharSets.ContainsKey(fontName)) return FontCharSets[fontName];
|
||||
using Font font = new Font(fontName, fontSize);
|
||||
LOGFONT obj = new LOGFONT();
|
||||
font.ToLogFont(obj);
|
||||
FontCharSets.TryAdd(fontName, obj.lfCharSet);
|
||||
return obj.lfCharSet;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 默认字体
|
||||
/// </summary>
|
||||
public static Font Font()
|
||||
{
|
||||
byte gdiCharSet = GetGdiCharSet("微软雅黑", FontSize);
|
||||
return new Font("微软雅黑", FontSize, FontStyle.Regular, GraphicsUnit.Point, gdiCharSet);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 默认字体
|
||||
/// </summary>
|
||||
public static Font Font(float fontSize)
|
||||
{
|
||||
byte gdiCharSet = GetGdiCharSet("微软雅黑", fontSize);
|
||||
return new Font("微软雅黑", fontSize, FontStyle.Regular, GraphicsUnit.Point, gdiCharSet);
|
||||
}
|
||||
|
||||
public static float FontSize = 12;
|
||||
|
||||
/// <summary>
|
||||
/// 默认二级字体
|
||||
/// </summary>
|
||||
public static Font SubFont()
|
||||
{
|
||||
byte gdiCharSet = GetGdiCharSet("微软雅黑", SubFontSize);
|
||||
return new Font("微软雅黑", SubFontSize, FontStyle.Regular, GraphicsUnit.Point, gdiCharSet);
|
||||
}
|
||||
|
||||
public static float SubFontSize = 9;
|
||||
|
||||
/// <summary>
|
||||
/// 主要颜色
|
||||
/// </summary>
|
||||
|
@ -27,6 +27,7 @@ using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Sunny.UI
|
||||
@ -42,6 +43,82 @@ namespace Sunny.UI
|
||||
|
||||
public static float FontSize { get; set; } = 12;
|
||||
|
||||
private static readonly ConcurrentDictionary<string, byte> FontCharSets = new ConcurrentDictionary<string, byte>();
|
||||
|
||||
//GdiCharSet
|
||||
//一个字节值,该值指定使用此 Font 字符集的 GDI 字符集。 默认值为 1。
|
||||
//字符集 值
|
||||
//ANSI 0
|
||||
//DEFAULT 1
|
||||
//象征 2
|
||||
//SHIFTJIS 128
|
||||
//HANGEUL 129
|
||||
//HANGUL 129
|
||||
//GB2312 134
|
||||
//中国BIG5 136
|
||||
//OEM 255
|
||||
//JOHAB 130
|
||||
//希伯来语 177
|
||||
//阿拉伯语 178
|
||||
//希腊语 161
|
||||
//土耳其语 162
|
||||
//越南语 163
|
||||
//泰语 222
|
||||
//EASTEUROPE 238
|
||||
//俄语 204
|
||||
//MAC 77
|
||||
//波罗的海 186
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
|
||||
internal class LOGFONT
|
||||
{
|
||||
public int lfHeight;
|
||||
public int lfWidth;
|
||||
public int lfEscapement;
|
||||
public int lfOrientation;
|
||||
public int lfWeight;
|
||||
public byte lfItalic;
|
||||
public byte lfUnderline;
|
||||
public byte lfStrikeOut;
|
||||
public byte lfCharSet;
|
||||
public byte lfOutPrecision;
|
||||
public byte lfClipPrecision;
|
||||
public byte lfQuality;
|
||||
public byte lfPitchAndFamily;
|
||||
[MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
|
||||
public string lfFaceName;
|
||||
}
|
||||
|
||||
internal static byte GetGdiCharSet(string fontName)
|
||||
{
|
||||
if (FontCharSets.ContainsKey(fontName)) return FontCharSets[fontName];
|
||||
using Font font = new Font(fontName, 16);
|
||||
LOGFONT obj = new LOGFONT();
|
||||
font.ToLogFont(obj);
|
||||
FontCharSets.TryAdd(fontName, obj.lfCharSet);
|
||||
return obj.lfCharSet;
|
||||
}
|
||||
|
||||
internal static float DefaultFontSize = 12;
|
||||
internal static float DefaultSubFontSize = 9;
|
||||
/// <summary>
|
||||
/// 默认字体
|
||||
/// </summary>
|
||||
internal static Font Font()
|
||||
{
|
||||
byte gdiCharSet = GetGdiCharSet("微软雅黑");
|
||||
return new Font("微软雅黑", DefaultFontSize, FontStyle.Regular, GraphicsUnit.Point, gdiCharSet);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 默认二级字体
|
||||
/// </summary>
|
||||
internal static Font SubFont()
|
||||
{
|
||||
byte gdiCharSet = GetGdiCharSet("微软雅黑");
|
||||
return new Font("微软雅黑", DefaultSubFontSize, FontStyle.Regular, GraphicsUnit.Point, gdiCharSet);
|
||||
}
|
||||
|
||||
public static List<UIStyle> PopularStyles()
|
||||
{
|
||||
List<UIStyle> styles = new List<UIStyle>();
|
||||
|
Loading…
x
Reference in New Issue
Block a user