controls - Windows Phone 8.1 颜色选择器控件

标签 controls windows-phone-8.1 color-picker

我想知道是否有适用于 Windows Phone 8.1 运行时应用程序的颜色选择器控件,如下所示。

提前致谢!

enter image description here

最佳答案

我的解决方案是在 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>

在该页面的 OnNavigedTo 上添加此代码

     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/

关于controls - Windows Phone 8.1 颜色选择器控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24481602/

相关文章:

jquery - "Don' t 重复自己”的 jQuery 菜单方法

c# - 从另一个线程和类更新 WinForm 控件

c# - 绑定(bind)列表和 UI 控件,编辑时不更新

wpf - ListView.ItemTemplate中的SharedSizeGroup

location - 地理围栏未在 Windows Phone 8.1 的后台触发

c# - Windows Phone 8.1 上的屏幕大小和 RAM

javascript - 如何在 AngularJS Bootstrap Colorpicker 中使用事件

wpf - WPF 数字 UpDown 控件在哪里?

c# - 如何在 Windows Phone 8.1 上缩放和滚动选择。帮帮我

c# - 在 C# Windows 应用程序中将色板保存在 ColorDialog 上