WPF最大的特点就是酷炫的外观,在学习过程中经常看见各种渐变窗体。作为几乎没做过美工的程序员,我对各种颜色的argb值不熟,颜色的英文单词也只认识部分。为了不至于每次都用Colors点出颜色再随机挑选看效果。写了个小程序展示System.Windows.Media.Colors中定义的141中颜色:
运行结果:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using System.Windows.Controls;
using System.Reflection;
namespace PrintColors
{
class Program
{
private static Window win = new Window();
private static WrapPanel wp = new WrapPanel();
[STAThread]
static void Main(string[] args)
{
IniWindow();
IniWrapPanel();
Application app = new Application();
app.Run(win);
}
/// <summary>
/// 创建各种颜色的Lable,用以展示。
/// </summary>
/// <param name="lblColor">要创建的Label的颜色</param>
/// <returns></returns>
public static Label Createlbl(Color lblColor)
{
Label lbl = new Label();
lbl.Height = 30;
lbl.Width = 100;
SolidColorBrush scb = new SolidColorBrush(lblColor);
lbl.Background = scb;
return lbl;
}
/// <summary>
/// 初始化WrapPanel,其内容是各色标签。
/// </summary>
public static void IniWrapPanel()
{
Type t = typeof(Colors);
PropertyInfo[] pInfo = t.GetProperties();
foreach (PropertyInfo pi in pInfo)
{
Color c = (Color)ColorConverter.ConvertFromString(pi.Name);
Label lbl = Createlbl(c);
lbl.Content = pi.Name;
wp.Children.Add(lbl);
}
}
/// <summary>
/// 初始化窗体,以合理的尺寸显示各种颜色。
/// </summary>
public static void IniWindow()
{
win.Title = "ColorPresentation";
win.ResizeMode = ResizeMode.NoResize;
win.Height = 600;
win.Width = 820;
win.Content = wp;
}
}
}