65.9K
CodeProject is changing. Read more.
Home

WPF Colors

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.14/5 (5 votes)

Jul 2, 2008

CPOL
viewsIcon

44214

downloadIcon

745

Show WPF Colors

Introduction

This is a simple WPF app.
I used ScrollViewer and UniformGrid elements to show colors.
You can save the hexadecimal number of each color to the clipboard by clicking on it.

Using the Code

XAML Code

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF Colors (Click to save to the Clipboard)" Height="300" Width="300">
    <Grid>
        <ScrollViewer Name="Scroll_Viewer">
            <UniformGrid Name="Uni_form_Grid">
                <!-- Placement of color rectangles  -->
            </UniformGrid>
        </ScrollViewer>
    </Grid>
</Window>

C# Code

public Window1()
{
    InitializeComponent();
    Uni_form_Grid.Children.Clear();//Clear all items in Uni_form_Grid
    //collects Brushes' property to an array
    Type t = typeof(System.Windows.Media.Brushes);
    PropertyInfo[] colors = t.GetProperties();
    //\\
    int i = -1;
    foreach (PropertyInfo color in colors)
    {
        i++;

        BrushConverter convertor = new BrushConverter();
        Brush brush = convertor.ConvertFromString(color.Name) as Brush;

        string hex = string.Format("#{0}", brush.ToString().Substring(3));

        Rectangle rectangle = new Rectangle();
        rectangle.Fill = brush;//Rectangle background color
        rectangle.ToolTip = hex;//ToolTip of Rectangle
        //rectangle.Height = 20;
        //rectangle.Width = 20;
        rectangle.Stroke = Brushes.Black;//border of Rectangle
        //add event to each Rectangle
        rectangle.MouseDown += new MouseButtonEventHandler(rectangle_MouseDown);

        Uni_form_Grid.Children.Add(rectangle);
    }
}

/// <summary>
/// Save data to Clipboard
/// </summary>
void rectangle_MouseDown(object sender, MouseButtonEventArgs e)
{
    Rectangle rect = (Rectangle)sender;
    Clipboard.SetData("Text", rect.ToolTip.ToString());
}

History

  • 2nd July, 2008: Initial post