+ 字体图标:增加FontAwesome V5.15版本字体图标
This commit is contained in:
parent
bfd641cbf8
commit
1979ed3819
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1251
SunnyUI/Font/UFontAwesomeV4.cs
Normal file
1251
SunnyUI/Font/UFontAwesomeV4.cs
Normal file
File diff suppressed because it is too large
Load Diff
1702
SunnyUI/Font/UFontAwesomeV5.cs
Normal file
1702
SunnyUI/Font/UFontAwesomeV5.cs
Normal file
File diff suppressed because it is too large
Load Diff
@ -19,6 +19,7 @@
|
|||||||
* 2020-01-01: V2.2.0 增加文件说明
|
* 2020-01-01: V2.2.0 增加文件说明
|
||||||
* 2020-05-21: V2.2.5 调整从资源文件中加载字体,不用另存为文件。
|
* 2020-05-21: V2.2.5 调整从资源文件中加载字体,不用另存为文件。
|
||||||
* 感谢:麦壳饼 https://gitee.com/maikebing
|
* 感谢:麦壳饼 https://gitee.com/maikebing
|
||||||
|
* 2021-06-15: V3.0.4 增加FontAwesomeV5的字体图标,重构代码
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
@ -40,41 +41,44 @@ namespace Sunny.UI
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// AwesomeFont
|
/// AwesomeFont
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static FontImages AwesomeFont;
|
public static readonly FontImages FontAwesomeV4;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ElegantFont
|
/// ElegantFont
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static FontImages ElegantFont;
|
public static readonly FontImages ElegantIcons;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FontAwesomeV5Brands
|
||||||
|
/// </summary>
|
||||||
|
public static readonly FontImages FontAwesomeV5Brands;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FontAwesomeV5Regular
|
||||||
|
/// </summary>
|
||||||
|
public static readonly FontImages FontAwesomeV5Regular;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FontAwesomeV5Solid
|
||||||
|
/// </summary>
|
||||||
|
public static readonly FontImages FontAwesomeV5Solid;
|
||||||
|
|
||||||
|
public const int FontAwesomeV4Count = 786;
|
||||||
|
public const int ElegantIconsCount = 360;
|
||||||
|
public const int FontAwesomeV5RegularCount = 151;
|
||||||
|
public const int FontAwesomeV5SolidCount = 1001;
|
||||||
|
public const int FontAwesomeV5BrandsCount = 457;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 构造函数
|
/// 构造函数
|
||||||
/// </summary>
|
/// </summary>
|
||||||
static FontImageHelper()
|
static FontImageHelper()
|
||||||
{
|
{
|
||||||
AwesomeFont = new FontImages(ReadFontFileFromResource("Sunny.UI.Font.FontAwesome.ttf"));
|
FontAwesomeV4 = new FontImages(ReadFontFileFromResource("Sunny.UI.Font.FontAwesome.ttf"));
|
||||||
ElegantFont = new FontImages(ReadFontFileFromResource("Sunny.UI.Font.ElegantIcons.ttf"));
|
ElegantIcons = new FontImages(ReadFontFileFromResource("Sunny.UI.Font.ElegantIcons.ttf"));
|
||||||
}
|
FontAwesomeV5Brands = new FontImages(ReadFontFileFromResource("Sunny.UI.Font.fa-brands-400.ttf"));
|
||||||
|
FontAwesomeV5Regular = new FontImages(ReadFontFileFromResource("Sunny.UI.Font.fa-regular-400.ttf"));
|
||||||
/// <summary>
|
FontAwesomeV5Solid = new FontImages(ReadFontFileFromResource("Sunny.UI.Font.fa-solid-900.ttf"));
|
||||||
/// 从系统资源中保存字体文件
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="file">字体文件名</param>
|
|
||||||
/// <param name="resource">资源名称</param>
|
|
||||||
private static void CreateFontFile(string file, string resource)
|
|
||||||
{
|
|
||||||
if (!File.Exists(file))
|
|
||||||
{
|
|
||||||
Stream fontStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resource);
|
|
||||||
if (fontStream != null)
|
|
||||||
{
|
|
||||||
byte[] buffer = new byte[fontStream.Length];
|
|
||||||
fontStream.Read(buffer, 0, (int)fontStream.Length);
|
|
||||||
fontStream.Close();
|
|
||||||
|
|
||||||
File.WriteAllBytes(file, buffer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static byte[] ReadFontFileFromResource(string name)
|
private static byte[] ReadFontFileFromResource(string name)
|
||||||
@ -87,6 +91,7 @@ namespace Sunny.UI
|
|||||||
fontStream.Read(buffer, 0, (int)fontStream.Length);
|
fontStream.Read(buffer, 0, (int)fontStream.Length);
|
||||||
fontStream.Close();
|
fontStream.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,9 +102,10 @@ namespace Sunny.UI
|
|||||||
/// <param name="symbol">字符</param>
|
/// <param name="symbol">字符</param>
|
||||||
/// <param name="symbolSize">大小</param>
|
/// <param name="symbolSize">大小</param>
|
||||||
/// <returns>字体大小</returns>
|
/// <returns>字体大小</returns>
|
||||||
public static SizeF GetFontImageSize(this Graphics graphics, int symbol, int symbolSize)
|
public static SizeF GetFontImageSize(this Graphics graphics, int symbol, int symbolSize,
|
||||||
|
UISymbolType symbolType = UISymbolType.FontAwesomeV4)
|
||||||
{
|
{
|
||||||
Font font = GetFont(symbol, symbolSize);
|
Font font = GetFont(symbol, symbolSize, symbolType);
|
||||||
if (font == null)
|
if (font == null)
|
||||||
{
|
{
|
||||||
return new SizeF(0, 0);
|
return new SizeF(0, 0);
|
||||||
@ -119,10 +125,68 @@ namespace Sunny.UI
|
|||||||
/// <param name="top">上</param>
|
/// <param name="top">上</param>
|
||||||
/// <param name="xOffset">左右偏移</param>
|
/// <param name="xOffset">左右偏移</param>
|
||||||
/// <param name="yOffSet">上下偏移</param>
|
/// <param name="yOffSet">上下偏移</param>
|
||||||
public static void DrawFontImage(this Graphics graphics, int symbol, int symbolSize, Color color, float left, float top, int xOffset = 0, int yOffSet = 0)
|
public static void DrawFontImage(this Graphics graphics, int symbol, int symbolSize, Color color,
|
||||||
|
float left, float top, int xOffset = 0, int yOffSet = 0)
|
||||||
{
|
{
|
||||||
|
UISymbolType symbolType = (UISymbolType)symbol.Div(100000);
|
||||||
|
graphics.DrawFontImage(symbol, symbolSize, color, left, top, xOffset, yOffSet, symbolType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 绘制字体图片
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="graphics">GDI绘图</param>
|
||||||
|
/// <param name="symbol">字符</param>
|
||||||
|
/// <param name="symbolSize">大小</param>
|
||||||
|
/// <param name="color">颜色</param>
|
||||||
|
/// <param name="rect">区域</param>
|
||||||
|
/// <param name="xOffset">左右偏移</param>
|
||||||
|
/// <param name="yOffSet">上下偏移</param>
|
||||||
|
public static void DrawFontImage(this Graphics graphics, int symbol, int symbolSize, Color color,
|
||||||
|
Rectangle rect, int xOffset = 0, int yOffSet = 0)
|
||||||
|
{
|
||||||
|
UISymbolType symbolType = (UISymbolType)symbol.Div(100000);
|
||||||
|
SizeF sf = graphics.GetFontImageSize(symbol, symbolSize, symbolType);
|
||||||
|
graphics.DrawFontImage(symbol, symbolSize, color, rect.Left + ((rect.Width - sf.Width) / 2.0f).RoundEx(),
|
||||||
|
rect.Top + ((rect.Height - sf.Height) / 2.0f).RoundEx(), xOffset, yOffSet, symbolType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 绘制字体图片
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="graphics">GDI绘图</param>
|
||||||
|
/// <param name="symbol">字符</param>
|
||||||
|
/// <param name="symbolSize">大小</param>
|
||||||
|
/// <param name="color">颜色</param>
|
||||||
|
/// <param name="rect">区域</param>
|
||||||
|
/// <param name="xOffset">左右偏移</param>
|
||||||
|
/// <param name="yOffSet">上下偏移</param>
|
||||||
|
public static void DrawFontImage(this Graphics graphics, int symbol, int symbolSize, Color color,
|
||||||
|
RectangleF rect, int xOffset = 0, int yOffSet = 0)
|
||||||
|
{
|
||||||
|
UISymbolType symbolType = (UISymbolType)symbol.Div(100000);
|
||||||
|
SizeF sf = graphics.GetFontImageSize(symbol, symbolSize, symbolType);
|
||||||
|
graphics.DrawFontImage(symbol, symbolSize, color, rect.Left + ((rect.Width - sf.Width) / 2.0f).RoundEx(),
|
||||||
|
rect.Top + ((rect.Height - sf.Height) / 2.0f).RoundEx(), xOffset, yOffSet, symbolType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 绘制字体图片
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="graphics">GDI绘图</param>
|
||||||
|
/// <param name="symbol">字符</param>
|
||||||
|
/// <param name="symbolSize">大小</param>
|
||||||
|
/// <param name="color">颜色</param>
|
||||||
|
/// <param name="left">左</param>
|
||||||
|
/// <param name="top">上</param>
|
||||||
|
/// <param name="xOffset">左右偏移</param>
|
||||||
|
/// <param name="yOffSet">上下偏移</param>
|
||||||
|
private static void DrawFontImage(this Graphics graphics, int symbol, int symbolSize, Color color,
|
||||||
|
float left, float top, int xOffset, int yOffSet, UISymbolType symbolType)
|
||||||
|
{
|
||||||
|
symbol = symbol.Mod(100000);
|
||||||
//字体
|
//字体
|
||||||
Font font = GetFont(symbol, symbolSize);
|
Font font = GetFont(symbol, symbolSize, symbolType);
|
||||||
if (font == null)
|
if (font == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -130,42 +194,10 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
string text = char.ConvertFromUtf32(symbol);
|
string text = char.ConvertFromUtf32(symbol);
|
||||||
graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
|
graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
|
||||||
|
graphics.InterpolationMode = InterpolationMode.HighQualityBilinear;
|
||||||
graphics.DrawString(text, font, color, left + xOffset, top + yOffSet);
|
graphics.DrawString(text, font, color, left + xOffset, top + yOffSet);
|
||||||
graphics.TextRenderingHint = TextRenderingHint.SystemDefault;
|
graphics.TextRenderingHint = TextRenderingHint.SystemDefault;
|
||||||
}
|
graphics.InterpolationMode = InterpolationMode.Default;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 绘制字体图片
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="graphics">GDI绘图</param>
|
|
||||||
/// <param name="symbol">字符</param>
|
|
||||||
/// <param name="symbolSize">大小</param>
|
|
||||||
/// <param name="color">颜色</param>
|
|
||||||
/// <param name="rect">区域</param>
|
|
||||||
/// <param name="xOffset">左右偏移</param>
|
|
||||||
/// <param name="yOffSet">上下偏移</param>
|
|
||||||
public static void DrawFontImage(this Graphics graphics, int symbol, int symbolSize, Color color, Rectangle rect, int xOffset = 0, int yOffSet = 0)
|
|
||||||
{
|
|
||||||
SizeF sf = graphics.GetFontImageSize(symbol, symbolSize);
|
|
||||||
graphics.DrawFontImage(symbol, symbolSize, color, rect.Left + ((rect.Width - sf.Width) / 2.0f).RoundEx(),
|
|
||||||
rect.Top + ((rect.Height - sf.Height) / 2.0f).RoundEx(), xOffset, yOffSet);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 绘制字体图片
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="graphics">GDI绘图</param>
|
|
||||||
/// <param name="symbol">字符</param>
|
|
||||||
/// <param name="symbolSize">大小</param>
|
|
||||||
/// <param name="color">颜色</param>
|
|
||||||
/// <param name="rect">区域</param>
|
|
||||||
/// <param name="xOffset">左右偏移</param>
|
|
||||||
/// <param name="yOffSet">上下偏移</param>
|
|
||||||
public static void DrawFontImage(this Graphics graphics, int symbol, int symbolSize, Color color, RectangleF rect, int xOffset = 0, int yOffSet = 0)
|
|
||||||
{
|
|
||||||
SizeF sf = graphics.GetFontImageSize(symbol, symbolSize);
|
|
||||||
graphics.DrawFontImage(symbol, symbolSize, color, rect.Left + ((rect.Width - sf.Width) / 2.0f).RoundEx(),
|
|
||||||
rect.Top + ((rect.Height - sf.Height) / 2.0f).RoundEx(), xOffset, yOffSet);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -175,14 +207,14 @@ namespace Sunny.UI
|
|||||||
/// <param name="size">大小</param>
|
/// <param name="size">大小</param>
|
||||||
/// <param name="color">颜色</param>
|
/// <param name="color">颜色</param>
|
||||||
/// <returns>图片</returns>
|
/// <returns>图片</returns>
|
||||||
public static Image CreateImage(int symbol, int size, Color color)
|
public static Image CreateImage(int symbol, int size, Color color, UISymbolType symbolType = UISymbolType.FontAwesomeV4)
|
||||||
{
|
{
|
||||||
Bitmap image = new Bitmap(size, size);
|
Bitmap image = new Bitmap(size, size);
|
||||||
|
|
||||||
using (Graphics g = image.Graphics())
|
using (Graphics g = image.Graphics())
|
||||||
{
|
{
|
||||||
SizeF sf = g.GetFontImageSize(symbol, size);
|
SizeF sf = g.GetFontImageSize(symbol, size, symbolType);
|
||||||
g.DrawFontImage(symbol, size, color, (image.Width - sf.Width) / 2.0f, (image.Height - sf.Height) / 2.0f);
|
g.DrawFontImage(symbol, size, color, (image.Width - sf.Width) / 2.0f, (image.Height - sf.Height) / 2.0f, 0, 0, symbolType);
|
||||||
}
|
}
|
||||||
|
|
||||||
return image;
|
return image;
|
||||||
@ -194,12 +226,27 @@ namespace Sunny.UI
|
|||||||
/// <param name="symbol">字符</param>
|
/// <param name="symbol">字符</param>
|
||||||
/// <param name="imageSize">大小</param>
|
/// <param name="imageSize">大小</param>
|
||||||
/// <returns>字体</returns>
|
/// <returns>字体</returns>
|
||||||
public static Font GetFont(int symbol, int imageSize)
|
public static Font GetFont(int symbol, int imageSize, UISymbolType symbolType = UISymbolType.FontAwesomeV4)
|
||||||
{
|
{
|
||||||
if (symbol > 0xF000)
|
switch (symbolType)
|
||||||
return AwesomeFont.GetFont(symbol, imageSize);
|
{
|
||||||
else
|
case UISymbolType.FontAwesomeV4:
|
||||||
return ElegantFont.GetFont(symbol, imageSize);
|
if (symbol > 0xF000)
|
||||||
|
return FontAwesomeV4.GetFont(symbol, imageSize);
|
||||||
|
else
|
||||||
|
return ElegantIcons.GetFont(symbol, imageSize);
|
||||||
|
case UISymbolType.FontAwesomeV5Brands:
|
||||||
|
return FontAwesomeV5Brands.GetFont(symbol, imageSize);
|
||||||
|
case UISymbolType.FontAwesomeV5Regular:
|
||||||
|
return FontAwesomeV5Regular.GetFont(symbol, imageSize);
|
||||||
|
case UISymbolType.FontAwesomeV5Solid:
|
||||||
|
return FontAwesomeV5Solid.GetFont(symbol, imageSize);
|
||||||
|
default:
|
||||||
|
if (symbol > 0xF000)
|
||||||
|
return FontAwesomeV4.GetFont(symbol, imageSize);
|
||||||
|
else
|
||||||
|
return ElegantIcons.GetFont(symbol, imageSize);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,11 +271,6 @@ namespace Sunny.UI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public Color BackColor { get; set; } = Color.Transparent;
|
public Color BackColor { get; set; } = Color.Transparent;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 前景色
|
|
||||||
/// </summary>
|
|
||||||
public Color ForeColor { get; set; } = Color.Black;
|
|
||||||
|
|
||||||
public FontImages(byte[] buffer)
|
public FontImages(byte[] buffer)
|
||||||
{
|
{
|
||||||
ImageFont = new PrivateFontCollection();
|
ImageFont = new PrivateFontCollection();
|
||||||
@ -287,18 +329,6 @@ namespace Sunny.UI
|
|||||||
Fonts.Clear();
|
Fonts.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取图标
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="iconText">序号</param>
|
|
||||||
/// <param name="imageSize">图标大小</param>
|
|
||||||
/// <returns>图标</returns>
|
|
||||||
public Icon GetIcon(int iconText, int imageSize)
|
|
||||||
{
|
|
||||||
Bitmap image = GetImage(iconText, imageSize);
|
|
||||||
return image != null ? ToIcon(image, IconSize) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取字体
|
/// 获取字体
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -346,60 +376,6 @@ namespace Sunny.UI
|
|||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取图片
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="iconText">图标</param>
|
|
||||||
/// <param name="imageSize">图标大小</param>
|
|
||||||
/// <returns>图片</returns>
|
|
||||||
public Bitmap GetImage(int iconText, int imageSize)
|
|
||||||
{
|
|
||||||
Font imageFont = Fonts[MinFontSize];
|
|
||||||
SizeF textSize = new SizeF(imageSize, imageSize);
|
|
||||||
using (Bitmap bitmap = new Bitmap(48, 48))
|
|
||||||
using (Graphics graphics = Graphics.FromImage(bitmap))
|
|
||||||
{
|
|
||||||
int size = MaxFontSize;
|
|
||||||
for (int i = 0; i <= MaxFontSize - MinFontSize; i++)
|
|
||||||
{
|
|
||||||
Font font = Fonts[size];
|
|
||||||
SizeF sf = GetIconSize(iconText, graphics, font);
|
|
||||||
|
|
||||||
if (sf.Width < imageSize && sf.Height < imageSize)
|
|
||||||
{
|
|
||||||
imageFont = font;
|
|
||||||
textSize = sf;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
size -= 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Size iconSize = textSize.ToSize();
|
|
||||||
Bitmap srcImage = new Bitmap(iconSize.Width, iconSize.Height);
|
|
||||||
using (Graphics graphics = Graphics.FromImage(srcImage))
|
|
||||||
{
|
|
||||||
string s = char.ConvertFromUtf32(iconText);
|
|
||||||
graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
|
|
||||||
graphics.InterpolationMode = InterpolationMode.HighQualityBilinear;
|
|
||||||
//graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
|
|
||||||
//graphics.SmoothingMode = SmoothingMode.HighQuality;
|
|
||||||
graphics.DrawString(s, imageFont, ForeColor, new PointF(0.0f, 0.0f));
|
|
||||||
graphics.TextRenderingHint = TextRenderingHint.SystemDefault;
|
|
||||||
graphics.InterpolationMode = InterpolationMode.Default;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bitmap result = new Bitmap(imageSize, imageSize);
|
|
||||||
using (Graphics graphics = Graphics.FromImage(result))
|
|
||||||
{
|
|
||||||
graphics.DrawImage(srcImage, imageSize / 2.0f - textSize.Width / 2.0f, imageSize / 2.0f - textSize.Height / 2.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
srcImage.Dispose();
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Size GetIconSize(int iconText, Graphics graphics, Font font)
|
private Size GetIconSize(int iconText, Graphics graphics, Font font)
|
||||||
{
|
{
|
||||||
string text = char.ConvertFromUtf32(iconText);
|
string text = char.ConvertFromUtf32(iconText);
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -24,7 +24,6 @@ using System.Collections.Concurrent;
|
|||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Design;
|
using System.Drawing.Design;
|
||||||
using System.Reflection;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace Sunny.UI
|
namespace Sunny.UI
|
||||||
@ -32,11 +31,13 @@ namespace Sunny.UI
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 字体图标编辑器
|
/// 字体图标编辑器
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class UIFontImages : Form
|
public partial class UIFontImages : Form, ISymbol
|
||||||
{
|
{
|
||||||
private readonly ConcurrentQueue<Label> AwesomeLabels = new ConcurrentQueue<Label>();
|
private readonly ConcurrentQueue<Label> FontAwesomeV4Labels = new ConcurrentQueue<Label>();
|
||||||
private readonly ConcurrentQueue<Label> ElegantLabels = new ConcurrentQueue<Label>();
|
private readonly ConcurrentQueue<Label> ElegantIconsLabels = new ConcurrentQueue<Label>();
|
||||||
private readonly ConcurrentQueue<Label> LigatureSymbolsLabels = new ConcurrentQueue<Label>();
|
private readonly ConcurrentQueue<Label> FontAwesomeV5SolidLabels = new ConcurrentQueue<Label>();
|
||||||
|
private readonly ConcurrentQueue<Label> FontAwesomeV5BrandsLabels = new ConcurrentQueue<Label>();
|
||||||
|
private readonly ConcurrentQueue<Label> FontAwesomeV5RegularLabels = new ConcurrentQueue<Label>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 构造函数
|
/// 构造函数
|
||||||
@ -49,7 +50,11 @@ namespace Sunny.UI
|
|||||||
private void UIFontImages_Load(object sender, EventArgs e)
|
private void UIFontImages_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AddHighFreqImage();
|
AddHighFreqImage();
|
||||||
bg.RunWorkerAsync();
|
bg1.RunWorkerAsync();
|
||||||
|
bg2.RunWorkerAsync();
|
||||||
|
bg3.RunWorkerAsync();
|
||||||
|
bg4.RunWorkerAsync();
|
||||||
|
bg5.RunWorkerAsync();
|
||||||
timer.Start();
|
timer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,22 +62,52 @@ namespace Sunny.UI
|
|||||||
{
|
{
|
||||||
timer.Stop();
|
timer.Stop();
|
||||||
|
|
||||||
while (AwesomeLabels.Count > 0)
|
while (FontAwesomeV4Labels.Count > 0)
|
||||||
{
|
{
|
||||||
if (AwesomeLabels.TryDequeue(out Label lbl))
|
if (FontAwesomeV4Labels.TryDequeue(out Label lbl))
|
||||||
{
|
{
|
||||||
lpAwesome.Controls.Add(lbl);
|
lpAwesome.Controls.Add(lbl);
|
||||||
int symbol = (int)lbl.Tag;
|
SymbolValue symbol = (SymbolValue)lbl.Tag;
|
||||||
toolTip.SetToolTip(lbl, symbol.ToString());
|
toolTip.SetToolTip(lbl, symbol.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (ElegantLabels.Count > 0)
|
while (ElegantIconsLabels.Count > 0)
|
||||||
{
|
{
|
||||||
if (ElegantLabels.TryDequeue(out Label lbl))
|
if (ElegantIconsLabels.TryDequeue(out Label lbl))
|
||||||
{
|
{
|
||||||
lpElegant.Controls.Add(lbl);
|
lpElegant.Controls.Add(lbl);
|
||||||
int symbol = (int)lbl.Tag;
|
SymbolValue symbol = (SymbolValue)lbl.Tag;
|
||||||
|
toolTip.SetToolTip(lbl, symbol.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while (FontAwesomeV5SolidLabels.Count > 0)
|
||||||
|
{
|
||||||
|
if (FontAwesomeV5SolidLabels.TryDequeue(out Label lbl))
|
||||||
|
{
|
||||||
|
lpV5Solid.Controls.Add(lbl);
|
||||||
|
SymbolValue symbol = (SymbolValue)lbl.Tag;
|
||||||
|
toolTip.SetToolTip(lbl, symbol.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while (FontAwesomeV5RegularLabels.Count > 0)
|
||||||
|
{
|
||||||
|
if (FontAwesomeV5RegularLabels.TryDequeue(out Label lbl))
|
||||||
|
{
|
||||||
|
lpV5Regular.Controls.Add(lbl);
|
||||||
|
SymbolValue symbol = (SymbolValue)lbl.Tag;
|
||||||
|
toolTip.SetToolTip(lbl, symbol.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while (FontAwesomeV5BrandsLabels.Count > 0)
|
||||||
|
{
|
||||||
|
if (FontAwesomeV5BrandsLabels.TryDequeue(out Label lbl))
|
||||||
|
{
|
||||||
|
lpV5Brands.Controls.Add(lbl);
|
||||||
|
SymbolValue symbol = (SymbolValue)lbl.Tag;
|
||||||
toolTip.SetToolTip(lbl, symbol.ToString());
|
toolTip.SetToolTip(lbl, symbol.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -80,39 +115,6 @@ namespace Sunny.UI
|
|||||||
timer.Start();
|
timer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddAwesomeImageEx()
|
|
||||||
{
|
|
||||||
Type t = typeof(FontAwesomeIcons);
|
|
||||||
FieldInfo[] fis = t.GetFields();
|
|
||||||
foreach (var fieldInfo in fis)
|
|
||||||
{
|
|
||||||
int value = fieldInfo.GetRawConstantValue().ToString().ToInt();
|
|
||||||
AwesomeLabels.Enqueue(CreateLabel(value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void AddElegantImageEx()
|
|
||||||
{
|
|
||||||
Type t = typeof(FontElegantIcons);
|
|
||||||
FieldInfo[] fis = t.GetFields();
|
|
||||||
foreach (var fieldInfo in fis)
|
|
||||||
{
|
|
||||||
int value = fieldInfo.GetRawConstantValue().ToString().ToInt();
|
|
||||||
ElegantLabels.Enqueue(CreateLabel(value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void AddLigatureSymbolsEx()
|
|
||||||
{
|
|
||||||
Type t = typeof(LigatureSymbols);
|
|
||||||
FieldInfo[] fis = t.GetFields();
|
|
||||||
foreach (var fieldInfo in fis)
|
|
||||||
{
|
|
||||||
int value = fieldInfo.GetRawConstantValue().ToString().ToInt();
|
|
||||||
LigatureSymbolsLabels.Enqueue(CreateLabel(value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void AddHighFreqImage()
|
private void AddHighFreqImage()
|
||||||
{
|
{
|
||||||
AddLabel(FontAwesomeIcons.fa_check);
|
AddLabel(FontAwesomeIcons.fa_check);
|
||||||
@ -212,79 +214,119 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
private void AddLabel(int icon)
|
private void AddLabel(int icon)
|
||||||
{
|
{
|
||||||
Label lbl = CreateLabel(icon);
|
Label lbl = CreateLabel(icon, UISymbolType.FontAwesomeV4);
|
||||||
lpCustom.Controls.Add(lbl);
|
lpCustom.Controls.Add(lbl);
|
||||||
int symbol = (int)lbl.Tag;
|
SymbolValue symbol = (SymbolValue)lbl.Tag;
|
||||||
toolTip.SetToolTip(lbl, symbol.ToString());
|
toolTip.SetToolTip(lbl, symbol.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Label CreateLabel(int icon)
|
public struct SymbolValue
|
||||||
|
{
|
||||||
|
public int Symbol { get; set; }
|
||||||
|
|
||||||
|
public UISymbolType SymbolType { get; set; }
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return Symbol.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Label CreateLabel(int icon, UISymbolType symbolType)
|
||||||
{
|
{
|
||||||
Label lbl = new Label();
|
Label lbl = new Label();
|
||||||
lbl.AutoSize = false;
|
lbl.AutoSize = false;
|
||||||
lbl.Size = new Size(32, 32);
|
lbl.Size = new Size(32, 32);
|
||||||
lbl.ForeColor = UIColor.Blue;
|
lbl.ForeColor = UIColor.Blue;
|
||||||
|
lbl.Image = FontImageHelper.CreateImage(icon, 28, UIFontColor.Primary, symbolType);
|
||||||
FontImageHelper.AwesomeFont.ForeColor = UIFontColor.Primary;
|
|
||||||
FontImageHelper.ElegantFont.ForeColor = UIFontColor.Primary;
|
|
||||||
|
|
||||||
lbl.Image = icon >= 0xF000 ?
|
|
||||||
FontImageHelper.AwesomeFont.GetImage(icon, 28) :
|
|
||||||
FontImageHelper.ElegantFont.GetImage(icon, 28);
|
|
||||||
lbl.ImageAlign = ContentAlignment.MiddleCenter;
|
lbl.ImageAlign = ContentAlignment.MiddleCenter;
|
||||||
lbl.TextAlign = ContentAlignment.MiddleLeft;
|
lbl.TextAlign = ContentAlignment.MiddleLeft;
|
||||||
lbl.Margin = new Padding(2);
|
lbl.Margin = new Padding(2);
|
||||||
lbl.Click += lbl_DoubleClick;
|
lbl.Click += lbl_DoubleClick;
|
||||||
lbl.MouseEnter += Lbl_MouseEnter;
|
lbl.MouseEnter += Lbl_MouseEnter;
|
||||||
lbl.MouseLeave += Lbl_MouseLeave;
|
lbl.MouseLeave += Lbl_MouseLeave;
|
||||||
lbl.Tag = icon;
|
lbl.Tag = new SymbolValue() { Symbol = icon, SymbolType = symbolType };
|
||||||
return lbl;
|
return lbl;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Lbl_MouseLeave(object sender, EventArgs e)
|
private void Lbl_MouseLeave(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Label lbl = (Label)sender;
|
Label lbl = (Label)sender;
|
||||||
FontImageHelper.AwesomeFont.ForeColor = UIFontColor.Primary;
|
SymbolValue symbol = (SymbolValue)lbl.Tag;
|
||||||
FontImageHelper.ElegantFont.ForeColor = UIFontColor.Primary;
|
lbl.Image = FontImageHelper.CreateImage(symbol.Symbol, 28, UIFontColor.Primary, symbol.SymbolType);
|
||||||
int icon = (int)lbl.Tag;
|
|
||||||
lbl.Image = icon >= 0xF000 ?
|
|
||||||
FontImageHelper.AwesomeFont.GetImage(icon, 28) :
|
|
||||||
FontImageHelper.ElegantFont.GetImage(icon, 28);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Lbl_MouseEnter(object sender, EventArgs e)
|
private void Lbl_MouseEnter(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Label lbl = (Label)sender;
|
Label lbl = (Label)sender;
|
||||||
FontImageHelper.AwesomeFont.ForeColor = UIColor.Blue;
|
SymbolValue symbol = (SymbolValue)lbl.Tag;
|
||||||
FontImageHelper.ElegantFont.ForeColor = UIColor.Blue;
|
lbl.Image = FontImageHelper.CreateImage(symbol.Symbol, 28, UIColor.Blue, symbol.SymbolType);
|
||||||
int icon = (int)lbl.Tag;
|
|
||||||
lbl.Image = icon >= 0xF000 ?
|
|
||||||
FontImageHelper.AwesomeFont.GetImage(icon, 28) :
|
|
||||||
FontImageHelper.ElegantFont.GetImage(icon, 28);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
public int Symbol { get; set; }
|
||||||
/// 选中图标
|
public UISymbolType SymbolType { get; set; }
|
||||||
/// </summary>
|
public Point SymbolOffset { get; set; }
|
||||||
public int SelectSymbol { get; private set; }
|
|
||||||
|
|
||||||
private void lbl_DoubleClick(object sender, EventArgs e)
|
private void lbl_DoubleClick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (sender is Label lbl) SelectSymbol = (int)lbl.Tag;
|
if (sender is Label lbl)
|
||||||
DialogResult = DialogResult.OK;
|
{
|
||||||
Close();
|
SymbolValue symbol = (SymbolValue)lbl.Tag;
|
||||||
|
SymbolType = symbol.SymbolType;
|
||||||
|
Symbol = ((int)symbol.SymbolType) * 100000 + symbol.Symbol;
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void bg_DoWork(object sender, DoWorkEventArgs e)
|
private void bg_DoWork(object sender, DoWorkEventArgs e)
|
||||||
{
|
{
|
||||||
AddAwesomeImageEx();
|
var t = typeof(FontAwesomeIcons);
|
||||||
//scoreStep = 1;
|
foreach (var fieldInfo in t.GetFields())
|
||||||
AddElegantImageEx();
|
{
|
||||||
|
int value = fieldInfo.GetRawConstantValue().ToString().ToInt();
|
||||||
|
FontAwesomeV4Labels.Enqueue(CreateLabel(value, UISymbolType.FontAwesomeV4));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void bg_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
private void bg2_DoWork(object sender, DoWorkEventArgs e)
|
||||||
{
|
{
|
||||||
|
var t = typeof(FontElegantIcons);
|
||||||
|
foreach (var fieldInfo in t.GetFields())
|
||||||
|
{
|
||||||
|
int value = fieldInfo.GetRawConstantValue().ToString().ToInt();
|
||||||
|
ElegantIconsLabels.Enqueue(CreateLabel(value, UISymbolType.FontAwesomeV4));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bg3_DoWork(object sender, DoWorkEventArgs e)
|
||||||
|
{
|
||||||
|
var t = typeof(FontAweSomeV5Brands);
|
||||||
|
foreach (var fieldInfo in t.GetFields())
|
||||||
|
{
|
||||||
|
int value = fieldInfo.GetRawConstantValue().ToString().ToInt();
|
||||||
|
FontAwesomeV5BrandsLabels.Enqueue(CreateLabel(value, UISymbolType.FontAwesomeV5Brands));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bg4_DoWork(object sender, DoWorkEventArgs e)
|
||||||
|
{
|
||||||
|
var t = typeof(FontAweSomeV5Regular);
|
||||||
|
foreach (var fieldInfo in t.GetFields())
|
||||||
|
{
|
||||||
|
int value = fieldInfo.GetRawConstantValue().ToString().ToInt();
|
||||||
|
FontAwesomeV5RegularLabels.Enqueue(CreateLabel(value, UISymbolType.FontAwesomeV5Regular));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bg5_DoWork(object sender, DoWorkEventArgs e)
|
||||||
|
{
|
||||||
|
var t = typeof(FontAweSomeV5Solid);
|
||||||
|
foreach (var fieldInfo in t.GetFields())
|
||||||
|
{
|
||||||
|
int value = fieldInfo.GetRawConstantValue().ToString().ToInt();
|
||||||
|
FontAwesomeV5SolidLabels.Enqueue(CreateLabel(value, UISymbolType.FontAwesomeV5Solid));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -316,7 +358,7 @@ namespace Sunny.UI
|
|||||||
//打开属性编辑器修改数据
|
//打开属性编辑器修改数据
|
||||||
UIFontImages frm = new UIFontImages();
|
UIFontImages frm = new UIFontImages();
|
||||||
if (frm.ShowDialog() == DialogResult.OK)
|
if (frm.ShowDialog() == DialogResult.OK)
|
||||||
value = frm.SelectSymbol;
|
value = frm.Symbol;
|
||||||
frm.Dispose();
|
frm.Dispose();
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
141
SunnyUI/Font/UIFontImages.designer.cs
generated
141
SunnyUI/Font/UIFontImages.designer.cs
generated
@ -36,13 +36,26 @@
|
|||||||
this.lpAwesome = new System.Windows.Forms.FlowLayoutPanel();
|
this.lpAwesome = new System.Windows.Forms.FlowLayoutPanel();
|
||||||
this.tabPage3 = new System.Windows.Forms.TabPage();
|
this.tabPage3 = new System.Windows.Forms.TabPage();
|
||||||
this.lpElegant = new System.Windows.Forms.FlowLayoutPanel();
|
this.lpElegant = new System.Windows.Forms.FlowLayoutPanel();
|
||||||
this.bg = new System.ComponentModel.BackgroundWorker();
|
this.tabPage4 = new System.Windows.Forms.TabPage();
|
||||||
|
this.lpV5Brands = new System.Windows.Forms.FlowLayoutPanel();
|
||||||
|
this.tabPage5 = new System.Windows.Forms.TabPage();
|
||||||
|
this.lpV5Solid = new System.Windows.Forms.FlowLayoutPanel();
|
||||||
|
this.tabPage6 = new System.Windows.Forms.TabPage();
|
||||||
|
this.lpV5Regular = new System.Windows.Forms.FlowLayoutPanel();
|
||||||
|
this.bg1 = new System.ComponentModel.BackgroundWorker();
|
||||||
this.timer = new System.Windows.Forms.Timer(this.components);
|
this.timer = new System.Windows.Forms.Timer(this.components);
|
||||||
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
|
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||||
|
this.bg2 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
this.bg3 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
this.bg4 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
this.bg5 = new System.ComponentModel.BackgroundWorker();
|
||||||
this.tabControl1.SuspendLayout();
|
this.tabControl1.SuspendLayout();
|
||||||
this.tabPage1.SuspendLayout();
|
this.tabPage1.SuspendLayout();
|
||||||
this.tabPage2.SuspendLayout();
|
this.tabPage2.SuspendLayout();
|
||||||
this.tabPage3.SuspendLayout();
|
this.tabPage3.SuspendLayout();
|
||||||
|
this.tabPage4.SuspendLayout();
|
||||||
|
this.tabPage5.SuspendLayout();
|
||||||
|
this.tabPage6.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// tabControl1
|
// tabControl1
|
||||||
@ -50,20 +63,23 @@
|
|||||||
this.tabControl1.Controls.Add(this.tabPage1);
|
this.tabControl1.Controls.Add(this.tabPage1);
|
||||||
this.tabControl1.Controls.Add(this.tabPage2);
|
this.tabControl1.Controls.Add(this.tabPage2);
|
||||||
this.tabControl1.Controls.Add(this.tabPage3);
|
this.tabControl1.Controls.Add(this.tabPage3);
|
||||||
|
this.tabControl1.Controls.Add(this.tabPage4);
|
||||||
|
this.tabControl1.Controls.Add(this.tabPage5);
|
||||||
|
this.tabControl1.Controls.Add(this.tabPage6);
|
||||||
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.tabControl1.Location = new System.Drawing.Point(0, 0);
|
this.tabControl1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.tabControl1.Name = "tabControl1";
|
this.tabControl1.Name = "tabControl1";
|
||||||
this.tabControl1.SelectedIndex = 0;
|
this.tabControl1.SelectedIndex = 0;
|
||||||
this.tabControl1.Size = new System.Drawing.Size(497, 450);
|
this.tabControl1.Size = new System.Drawing.Size(541, 502);
|
||||||
this.tabControl1.TabIndex = 0;
|
this.tabControl1.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// tabPage1
|
// tabPage1
|
||||||
//
|
//
|
||||||
this.tabPage1.Controls.Add(this.lpCustom);
|
this.tabPage1.Controls.Add(this.lpCustom);
|
||||||
this.tabPage1.Location = new System.Drawing.Point(4, 22);
|
this.tabPage1.Location = new System.Drawing.Point(4, 26);
|
||||||
this.tabPage1.Name = "tabPage1";
|
this.tabPage1.Name = "tabPage1";
|
||||||
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
|
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.tabPage1.Size = new System.Drawing.Size(489, 424);
|
this.tabPage1.Size = new System.Drawing.Size(533, 472);
|
||||||
this.tabPage1.TabIndex = 0;
|
this.tabPage1.TabIndex = 0;
|
||||||
this.tabPage1.Text = "常用";
|
this.tabPage1.Text = "常用";
|
||||||
this.tabPage1.UseVisualStyleBackColor = true;
|
this.tabPage1.UseVisualStyleBackColor = true;
|
||||||
@ -74,18 +90,18 @@
|
|||||||
this.lpCustom.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.lpCustom.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.lpCustom.Location = new System.Drawing.Point(3, 3);
|
this.lpCustom.Location = new System.Drawing.Point(3, 3);
|
||||||
this.lpCustom.Name = "lpCustom";
|
this.lpCustom.Name = "lpCustom";
|
||||||
this.lpCustom.Size = new System.Drawing.Size(483, 418);
|
this.lpCustom.Size = new System.Drawing.Size(527, 466);
|
||||||
this.lpCustom.TabIndex = 1;
|
this.lpCustom.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// tabPage2
|
// tabPage2
|
||||||
//
|
//
|
||||||
this.tabPage2.Controls.Add(this.lpAwesome);
|
this.tabPage2.Controls.Add(this.lpAwesome);
|
||||||
this.tabPage2.Location = new System.Drawing.Point(4, 22);
|
this.tabPage2.Location = new System.Drawing.Point(4, 26);
|
||||||
this.tabPage2.Name = "tabPage2";
|
this.tabPage2.Name = "tabPage2";
|
||||||
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
|
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.tabPage2.Size = new System.Drawing.Size(489, 424);
|
this.tabPage2.Size = new System.Drawing.Size(756, 637);
|
||||||
this.tabPage2.TabIndex = 1;
|
this.tabPage2.TabIndex = 1;
|
||||||
this.tabPage2.Text = "AwesomeFont";
|
this.tabPage2.Text = "FontAwesomeV4";
|
||||||
this.tabPage2.UseVisualStyleBackColor = true;
|
this.tabPage2.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// lpAwesome
|
// lpAwesome
|
||||||
@ -95,16 +111,16 @@
|
|||||||
this.lpAwesome.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(158)))), ((int)(((byte)(255)))));
|
this.lpAwesome.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(158)))), ((int)(((byte)(255)))));
|
||||||
this.lpAwesome.Location = new System.Drawing.Point(3, 3);
|
this.lpAwesome.Location = new System.Drawing.Point(3, 3);
|
||||||
this.lpAwesome.Name = "lpAwesome";
|
this.lpAwesome.Name = "lpAwesome";
|
||||||
this.lpAwesome.Size = new System.Drawing.Size(483, 418);
|
this.lpAwesome.Size = new System.Drawing.Size(750, 631);
|
||||||
this.lpAwesome.TabIndex = 1;
|
this.lpAwesome.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// tabPage3
|
// tabPage3
|
||||||
//
|
//
|
||||||
this.tabPage3.Controls.Add(this.lpElegant);
|
this.tabPage3.Controls.Add(this.lpElegant);
|
||||||
this.tabPage3.Location = new System.Drawing.Point(4, 22);
|
this.tabPage3.Location = new System.Drawing.Point(4, 26);
|
||||||
this.tabPage3.Name = "tabPage3";
|
this.tabPage3.Name = "tabPage3";
|
||||||
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
|
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.tabPage3.Size = new System.Drawing.Size(489, 424);
|
this.tabPage3.Size = new System.Drawing.Size(756, 637);
|
||||||
this.tabPage3.TabIndex = 2;
|
this.tabPage3.TabIndex = 2;
|
||||||
this.tabPage3.Text = "ElegantFont";
|
this.tabPage3.Text = "ElegantFont";
|
||||||
this.tabPage3.UseVisualStyleBackColor = true;
|
this.tabPage3.UseVisualStyleBackColor = true;
|
||||||
@ -116,22 +132,100 @@
|
|||||||
this.lpElegant.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(158)))), ((int)(((byte)(255)))));
|
this.lpElegant.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(158)))), ((int)(((byte)(255)))));
|
||||||
this.lpElegant.Location = new System.Drawing.Point(3, 3);
|
this.lpElegant.Location = new System.Drawing.Point(3, 3);
|
||||||
this.lpElegant.Name = "lpElegant";
|
this.lpElegant.Name = "lpElegant";
|
||||||
this.lpElegant.Size = new System.Drawing.Size(483, 418);
|
this.lpElegant.Size = new System.Drawing.Size(750, 631);
|
||||||
this.lpElegant.TabIndex = 2;
|
this.lpElegant.TabIndex = 2;
|
||||||
//
|
//
|
||||||
// bg
|
// tabPage4
|
||||||
//
|
//
|
||||||
this.bg.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bg_DoWork);
|
this.tabPage4.Controls.Add(this.lpV5Brands);
|
||||||
this.bg.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bg_RunWorkerCompleted);
|
this.tabPage4.Location = new System.Drawing.Point(4, 26);
|
||||||
|
this.tabPage4.Name = "tabPage4";
|
||||||
|
this.tabPage4.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.tabPage4.Size = new System.Drawing.Size(756, 637);
|
||||||
|
this.tabPage4.TabIndex = 3;
|
||||||
|
this.tabPage4.Text = "FontAwesomeV5Brands";
|
||||||
|
this.tabPage4.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// lpV5Brands
|
||||||
|
//
|
||||||
|
this.lpV5Brands.AutoScroll = true;
|
||||||
|
this.lpV5Brands.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lpV5Brands.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(158)))), ((int)(((byte)(255)))));
|
||||||
|
this.lpV5Brands.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.lpV5Brands.Name = "lpV5Brands";
|
||||||
|
this.lpV5Brands.Size = new System.Drawing.Size(750, 631);
|
||||||
|
this.lpV5Brands.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// tabPage5
|
||||||
|
//
|
||||||
|
this.tabPage5.Controls.Add(this.lpV5Solid);
|
||||||
|
this.tabPage5.Location = new System.Drawing.Point(4, 26);
|
||||||
|
this.tabPage5.Name = "tabPage5";
|
||||||
|
this.tabPage5.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.tabPage5.Size = new System.Drawing.Size(756, 637);
|
||||||
|
this.tabPage5.TabIndex = 4;
|
||||||
|
this.tabPage5.Text = "V5Solid";
|
||||||
|
this.tabPage5.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// lpV5Solid
|
||||||
|
//
|
||||||
|
this.lpV5Solid.AutoScroll = true;
|
||||||
|
this.lpV5Solid.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lpV5Solid.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(158)))), ((int)(((byte)(255)))));
|
||||||
|
this.lpV5Solid.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.lpV5Solid.Name = "lpV5Solid";
|
||||||
|
this.lpV5Solid.Size = new System.Drawing.Size(750, 631);
|
||||||
|
this.lpV5Solid.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// tabPage6
|
||||||
|
//
|
||||||
|
this.tabPage6.Controls.Add(this.lpV5Regular);
|
||||||
|
this.tabPage6.Location = new System.Drawing.Point(4, 26);
|
||||||
|
this.tabPage6.Name = "tabPage6";
|
||||||
|
this.tabPage6.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.tabPage6.Size = new System.Drawing.Size(756, 637);
|
||||||
|
this.tabPage6.TabIndex = 5;
|
||||||
|
this.tabPage6.Text = "V5Regular";
|
||||||
|
this.tabPage6.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// lpV5Regular
|
||||||
|
//
|
||||||
|
this.lpV5Regular.AutoScroll = true;
|
||||||
|
this.lpV5Regular.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lpV5Regular.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(158)))), ((int)(((byte)(255)))));
|
||||||
|
this.lpV5Regular.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.lpV5Regular.Name = "lpV5Regular";
|
||||||
|
this.lpV5Regular.Size = new System.Drawing.Size(750, 631);
|
||||||
|
this.lpV5Regular.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// bg1
|
||||||
|
//
|
||||||
|
this.bg1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bg_DoWork);
|
||||||
//
|
//
|
||||||
// timer
|
// timer
|
||||||
//
|
//
|
||||||
this.timer.Tick += new System.EventHandler(this.timer_Tick);
|
this.timer.Tick += new System.EventHandler(this.timer_Tick);
|
||||||
//
|
//
|
||||||
|
// bg2
|
||||||
|
//
|
||||||
|
this.bg2.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bg2_DoWork);
|
||||||
|
//
|
||||||
|
// bg3
|
||||||
|
//
|
||||||
|
this.bg3.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bg3_DoWork);
|
||||||
|
//
|
||||||
|
// bg4
|
||||||
|
//
|
||||||
|
this.bg4.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bg4_DoWork);
|
||||||
|
//
|
||||||
|
// bg5
|
||||||
|
//
|
||||||
|
this.bg5.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bg5_DoWork);
|
||||||
|
//
|
||||||
// UIFontImages
|
// UIFontImages
|
||||||
//
|
//
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||||
this.ClientSize = new System.Drawing.Size(497, 450);
|
this.ClientSize = new System.Drawing.Size(541, 502);
|
||||||
this.Controls.Add(this.tabControl1);
|
this.Controls.Add(this.tabControl1);
|
||||||
this.Name = "UIFontImages";
|
this.Name = "UIFontImages";
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
@ -141,6 +235,9 @@
|
|||||||
this.tabPage1.ResumeLayout(false);
|
this.tabPage1.ResumeLayout(false);
|
||||||
this.tabPage2.ResumeLayout(false);
|
this.tabPage2.ResumeLayout(false);
|
||||||
this.tabPage3.ResumeLayout(false);
|
this.tabPage3.ResumeLayout(false);
|
||||||
|
this.tabPage4.ResumeLayout(false);
|
||||||
|
this.tabPage5.ResumeLayout(false);
|
||||||
|
this.tabPage6.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -154,8 +251,18 @@
|
|||||||
private System.Windows.Forms.FlowLayoutPanel lpAwesome;
|
private System.Windows.Forms.FlowLayoutPanel lpAwesome;
|
||||||
private System.Windows.Forms.TabPage tabPage3;
|
private System.Windows.Forms.TabPage tabPage3;
|
||||||
private System.Windows.Forms.FlowLayoutPanel lpElegant;
|
private System.Windows.Forms.FlowLayoutPanel lpElegant;
|
||||||
private System.ComponentModel.BackgroundWorker bg;
|
private System.ComponentModel.BackgroundWorker bg1;
|
||||||
private System.Windows.Forms.Timer timer;
|
private System.Windows.Forms.Timer timer;
|
||||||
private System.Windows.Forms.ToolTip toolTip;
|
private System.Windows.Forms.ToolTip toolTip;
|
||||||
|
private System.Windows.Forms.TabPage tabPage4;
|
||||||
|
private System.Windows.Forms.TabPage tabPage5;
|
||||||
|
private System.Windows.Forms.TabPage tabPage6;
|
||||||
|
private System.Windows.Forms.FlowLayoutPanel lpV5Brands;
|
||||||
|
private System.Windows.Forms.FlowLayoutPanel lpV5Solid;
|
||||||
|
private System.Windows.Forms.FlowLayoutPanel lpV5Regular;
|
||||||
|
private System.ComponentModel.BackgroundWorker bg2;
|
||||||
|
private System.ComponentModel.BackgroundWorker bg3;
|
||||||
|
private System.ComponentModel.BackgroundWorker bg4;
|
||||||
|
private System.ComponentModel.BackgroundWorker bg5;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,64 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<root>
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
@ -117,13 +57,25 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<metadata name="bg.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="bg1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>162, 24</value>
|
<value>384, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>245, 24</value>
|
<value>467, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="bg2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>84, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="bg3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>159, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="bg4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>234, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="bg5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>309, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
</root>
|
</root>
|
BIN
SunnyUI/Font/fa-brands-400.ttf
Normal file
BIN
SunnyUI/Font/fa-brands-400.ttf
Normal file
Binary file not shown.
BIN
SunnyUI/Font/fa-regular-400.ttf
Normal file
BIN
SunnyUI/Font/fa-regular-400.ttf
Normal file
Binary file not shown.
BIN
SunnyUI/Font/fa-solid-900.ttf
Normal file
BIN
SunnyUI/Font/fa-solid-900.ttf
Normal file
Binary file not shown.
8
SunnyUI/Properties/launchSettings.json
Normal file
8
SunnyUI/Properties/launchSettings.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"profiles": {
|
||||||
|
"SunnyUI": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"nativeDebugging": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -38,8 +38,10 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Remove="Controls\UIDataGridView.cs~RF2e4ccc29.TMP" />
|
<None Remove="Controls\UIDataGridView.cs~RF2e4ccc29.TMP" />
|
||||||
<None Remove="Font\ElegantIcons.ttf" />
|
<None Remove="Font\ElegantIcons.ttf" />
|
||||||
|
<None Remove="Font\fa-brands-400.ttf" />
|
||||||
|
<None Remove="Font\fa-regular-400.ttf" />
|
||||||
|
<None Remove="Font\fa-solid-900.ttf" />
|
||||||
<None Remove="Font\FontAwesome.ttf" />
|
<None Remove="Font\FontAwesome.ttf" />
|
||||||
<None Remove="Font\LigatureSymbols.ttf" />
|
|
||||||
<None Include="..\LICENSE">
|
<None Include="..\LICENSE">
|
||||||
<Pack>True</Pack>
|
<Pack>True</Pack>
|
||||||
<PackagePath></PackagePath>
|
<PackagePath></PackagePath>
|
||||||
@ -52,8 +54,10 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Font\ElegantIcons.ttf" />
|
<EmbeddedResource Include="Font\ElegantIcons.ttf" />
|
||||||
|
<EmbeddedResource Include="Font\fa-brands-400.ttf" />
|
||||||
|
<EmbeddedResource Include="Font\fa-regular-400.ttf" />
|
||||||
|
<EmbeddedResource Include="Font\fa-solid-900.ttf" />
|
||||||
<EmbeddedResource Include="Font\FontAwesome.ttf" />
|
<EmbeddedResource Include="Font\FontAwesome.ttf" />
|
||||||
<EmbeddedResource Include="Font\LigatureSymbols.ttf" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user