Web调色板Winform
问题描述:
不太确定我是否愚蠢。什么是网页调色板小部件调用?该ColorDialog类带来了另一个选择器这不是我想要的Web调色板Winform
我看虽然网站,但大部分的调色板没有网络选择器。 在此先感谢 [编辑:也许我应该改写这个问题,我如何提出上述颜色选择器?我不希望使用任何第三方插件,除了那些已经可以在VS]
答
您可以使用RGB颜色
your_object_here.BackColor = Color.FromArgb(255, 210, 210);
your_object_here.ForeColor = Color.FromArgb(255,255,255);
+0
但我想要的GUI显示不同的颜色供用户在运行时选择。 – ishtarsg
答
我希望有人来了外的箱子的净解。
如果没有,你可以自己写;这是一个对于初学者..:
public partial class WebColors : Form
{
public WebColors()
{
InitializeComponent();
}
public Color pick { get; set; }
private void WebColors_Load(object sender, EventArgs e)
{
var webColors =
Enum.GetValues(typeof(KnownColor))
.Cast<KnownColor>()
.Where(k => k >= KnownColor.Transparent && k < KnownColor.ButtonFace)
.Select(k => Color.FromKnownColor(k))
.OrderBy(c => c.GetHue())
.ThenBy(c => c.GetSaturation())
.ThenBy(c => c.GetBrightness()).ToList();
int cc = webColors.Count;
int n = (int)Math.Sqrt(cc) + 0;
int w = ClientSize.Width/(n) - 1;
Height = (n+1) * w + 90;
for (int i = 0; i < cc; i++)
{
Label lbl = new Label();
lbl.Text = "";
lbl.AutoSize = false;
lbl.Size = new Size(w - 1, w - 1);
lbl.BackColor = webColors[i];
lbl.BorderStyle = BorderStyle.FixedSingle;
lbl.Location = new Point(1 + w * (i % (n+ 1)) , w * (i/(n+1)));
lbl.Click += (ss, ee) =>
{
pick = lbl.BackColor;
lbl_colorName.Text = pick.Name;
};
Controls.Add(lbl);
}
}
private void cb_ok_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
private void cb_cancel_Click(object sender, EventArgs e)
{
this.Close();
}
}
您可以添加排序选项和开关的排序依据的条款..
我想我可以与微件“ColorListBox”位于下得到解决命名空间ActiproSoftware.WinUICore。它似乎来自Blend.BTW是混合第三方或从窗口? – ishtarsg