for Push.
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
using DocumentFormat.OpenXml.Wordprocessing;
|
||||
using KssSmaPlaLib.Ini;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Color = System.Drawing.Color;
|
||||
|
||||
namespace KssSmaPlaLib.Forms
|
||||
{
|
||||
public static class ColorHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// 色選択
|
||||
/// </summary>
|
||||
/// <param name="form"></param>
|
||||
/// <param name="defaultColor"></param>
|
||||
/// <param name="iniKey"></param>
|
||||
/// <returns></returns>
|
||||
public static Color? SelectColor(Form form, Color defaultColor, string iniKey = "")
|
||||
{
|
||||
using (ColorDialog cd = new ColorDialog())
|
||||
{
|
||||
// 今の色を初期選択にしておく
|
||||
cd.Color = defaultColor;
|
||||
|
||||
if (cd.ShowDialog(form) != DialogResult.OK) return null;
|
||||
|
||||
if (!string.IsNullOrEmpty(iniKey))
|
||||
{
|
||||
// 2. 🔥 Colorを16進数(#RRGGBB)に変換してINIに書き込み
|
||||
string colorHex = ColorTranslator.ToHtml(cd.Color);
|
||||
IniHelper.WriteValue(null, form.Name, iniKey, colorHex);
|
||||
}
|
||||
return cd.Color;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Colorを汎用的なHTML色コード文字列に変換する
|
||||
/// </summary>
|
||||
/// <param name="color"></param>
|
||||
/// <returns></returns>
|
||||
public static string ColorToHtmlColorString(Color color)
|
||||
{
|
||||
return ColorTranslator.ToHtml(color);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 汎用的なHTML色コード文字列からColorに変換する
|
||||
/// </summary>
|
||||
/// <param name="htmlColorString"></param>
|
||||
/// <returns></returns>
|
||||
public static Color HtmlColorStringToColor(string htmlColorString)
|
||||
{
|
||||
return ColorTranslator.FromHtml(htmlColorString);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 背景色から最適な文字色(黒/白)を返すメソッド
|
||||
/// </summary>
|
||||
/// <param name="backColor"></param>
|
||||
/// <returns></returns>
|
||||
public static Color GetContrastColor(Color backColor)
|
||||
{
|
||||
// 輝度計算 (ITU-R BT.601)
|
||||
double luminance = (0.299 * backColor.R) + (0.587 * backColor.G) + (0.114 * backColor.B);
|
||||
return (luminance > 128) ? Color.Black : Color.White;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user