Windows Phone 8.1颜色选择器控件

时间:2014-06-30 00:43:35

标签: controls windows-phone-8.1 color-picker

我想知道是否有一个类似于此的Windows Phone 8.1运行时应用程序的颜色选择器控件。

提前致谢!

enter image description here

2 个答案:

答案 0 :(得分:3)

我的解决方案是在Colorsource文件夹(或任何你想要命名的文件夹)下创建一个ColorPicker类,其中包含颜色数据列表

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace MyApps.Colorsource
    {
        class ColorPicker
        {
            public static List<ColorPicker> ColorData()
            {
    string[] colorNames =
       {
        "White","Black","Yellow","BananaYellow","LaserLemon","Jasmine","Green","Emerald",
        "GreenYellow","Lime","Chartreuse","LimeGreen","SpringGreen","LightGreen",
        "MediumSeaGreen","MediumSpringGreen","Olive","SeaGreen","Red","OrangeRed",
        "DarkOrange","Orange","ImperialRed","Maroon","Brown","Chocolate",
        "Coral","Crimson","DarkSalmon","DeepPink","Firebrick","HotPink",
        "IndianRed","LightCoral","LightPink","LightSalmon","Magenta","MediumVioletRed",
        "Orchid","PaleVioletRed","Salmon","SandyBrown","Navy","Indigo",
        "MidnightBlue","Blue","Purple","BlueViolet","CornflowerBlue","Cyan",
        "DarkCyan","DarkSlateBlue","DeepSkyBlue","DodgerBlue","LightBlue","LightSeaGreen",
        "LightSkyBlue","LightSteelBlue","Mauve","MediumSlateBlue","RoyalBlue","SlateBlue",
        "SlateGray","SteelBlue","Teal","Turquoise","DarkGrey","LightGray"
        };

    string[] uintColors =
        { 
                "#FFFFFFFF","#FF000000","#FFFFFF00","#FFFFE135","#FFFFFF66","#FFF8DE7E",                             "#FF008000",#FF008A00","#FFADFF2F","#FF00FF00","#FF7FFF00","#FF32CD32",
                "#FF00FF7F","#FF90EE90",
            "#FF3CB371","#FF00FA9A","#FF808000","#FF2E8B57","#FFFF0000","#FFFF4500",
            "#FFFF8C00","#FFFFA500","#FFED2939","#FF800000","#FFA52A2A","#FFD2691E",
            "#FFFF7F50","#FFDC143C","#FFE9967A","#FFFF1493","#FFB22222","#FFFF69B4",
            "#FFCD5C5C","#FFF08080","#FFFFB6C1","#FFFFA07A","#FFFF00FF","#FFC71585",
            "#FFDA70D6","#FFDB7093","#FFFA8072","#FFF4A460","#FF000080","#FF4B0082",
            "#FF191970","#FF0000FF","#FF800080","#FF8A2BE2","#FF6495ED","#FF00FFFF",
            "#FF008B8B","#FF483D8B","#FF00BFFF","#FF1E90FF","#FFADD8E6","#FF20B2AA",
            "#FF87CEFA","#FFB0C4DE","#FF76608A","#FF7B68EE","#FF4169E1","#FF6A5ACD",
            "#FF708090","#FF4682B4","#FF008080","#FF40E0D0","#FFA9A9A9","#FFD3D3D3"
        };

    // i variable depends on how many color you want to add in my case i have 67 colors

        var data = new List<ColorPicker>();
        for (int i = 0; i < 68; i++) { 
            data.Add(new ColorPicker(colorNames[i], uintColors[i]));
        }

        return data;

    }

    public ColorPicker(string name, string color)
    {
        Name = name;
        Coloruint = color;
    }

    public string Name { get; set; }
    public string Coloruint { get; set; }
        }
    }

然后我创建了一个GridView

    <GridView x:Name="ColorGrid"
              ItemsSource="{Binding}"
              VerticalAlignment="Top"
              Tapped="ColorGrid_Tapped">
                <GridView.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Ellipse Fill="{Binding Coloruint}"
                                     Height="50"
                                     Width="50"
                                     Margin="10"/>
                        </Grid>

                    </DataTemplate>
                </GridView.ItemTemplate>
            </GridView>

OnNavigatedTo在该页面上添加此代码

     var colorViewModel=ColorPicker.ColorData();
     ColorGrid.DataContext = colorViewModel;

要在gridviewtapped上使用颜色数据,请添加此代码

    private void ColorGrid_Tapped(object sender, TappedRoutedEventArgs e)
    {
        Ellipse senderObject = e.OriginalSource as Ellipse;
        if (senderObject != null)
        {
            //senderObject.Fill;<< This is content color data

        }

    }

希望这个帮助:D 我有这个想法 http://spasol.wordpress.com/2013/06/02/custom-color-picker-for-windows-phone/

答案 1 :(得分:1)

您可以尝试自定义颜色选择器 - 这是由Spaso Lazarevic编写的an article on Nokia Developer Wiki

它归结为在不同的页面上使用一组预定义的颜色,很好地布局。