# Color picker for Xamarin.Forms
Color picker control for Xamarin.Forms. It can be used as a large color mixer control (ColorPickerMixer) or as a dialog for select a color (ColorPickerDialog) or as an entry editor (ColorPickerEntry) of hexadecimal value with preview of a color and option of launch a dialog with color mixer.
https://raw.githubusercontent.com/PetrVobornik/ColorPicker/master/README.md?raw=true
## NuGet
* Available on NuGet: https://www.nuget.org/packages/Amporis.Xamarin.Forms.ColorPicker/ [![NuGet](https://img.shields.io/nuget/v/Amporis.Xamarin.Forms.ColorPicker.svg?label=NuGet)](https://www.nuget.org/packages/Amporis.Xamarin.Forms.ColorPicker/)
## Platform Support
Color picker control is written in C# (.NET 4.5) as .NET Standard 2.0 project and uses standard Xamarin.Forms only. It is compatible to use with UWP, Android and iOS.
## Instalation
Add NuGet (or source files) to your Xamarin.Forms .NET Standard project (or to shared project). There is no need to add NuGet to platform specific projects.
## Usage
### ColorPickerEntry and ColorPickerMixer
**XAML**
```xaml
```
**C#**
```csharp
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
gMain.BindingContext = this;
}
private Color editedColor;
public Color EditedColor {
get => editedColor;
set { editedColor = value; OnPropertyChanged(); }
}
}
```
There are also these properties:
**ColorPickerEntry**
* Color (BindableProperty)
* EditAlfa (true)
* ShowColorPreview (true)
* ColorPreviewButtonWidth (30)
* ColorPreviewButtonBorder (Black)
* SpaceBetweenEditorAndButton (5)
* AllowPickerDialog (true)
* DialogTitle ("")
* DialogSettings (class **ColorDialogSettings**, see above)
* RootContainer - parent container for dialog, if is null then will be found automatically
* Editor (read only) - reference for Entry where a hexadecimal color value is edited
* PreviewButtonClicked (event) - has argument class PreviewButtonClickedEventArgs with these properties:
* Color - current color which you can change to another by the event
* Handled - if you set it to true, dialog will not be shown
**ColorPickerMixer**
* Color (BindableProperty)
* EditAlfa (true)
* TextColor (Black)
* EditorsColor (White)
* ColorPreviewBorderColor (Black)
* SliderWidth (256)
* ARGBEditorsWidth (65)
* ColorEditorWidth (120)
### ColorPickerDialog
**C#**
```csharp
var color = await ColorPickerDialog.Show(gMain, "ColorPickerDialog", Color.White, null);
```
**Parameters**
* **parent** (gMain) - root container (Layout) on the page, where a modal dialog will be temporarily placed
* **title** ("ColorPickerDialog") - caption in the header of the dialog
* **defaultColor** (Color.White) - preselected color
* **settings** (null) - dialog settings - class **ColorDialogSettings** with these properties and its default values
* BackgroundColor (#40000000) - color of the panel below dialog which temporarily covers other controls on the page (using partial transparency)
* DialogColor (#FFFFFFFF)
* TextColor (#FF000000)
* OkButtonText ("OK")
* CancelButtonText ("Cancel")
* DialogAnimation (true)
* EditorsColor (#FFFFFFFF)
* ColorPreviewBorderColor (#00FFFFFF)
* SliderWidth (256)
* ARGBEditorsWidth (65)
* ColorEditorWidth (120)
* EditAlfa (true)
## Acknowledgment
I'd like to thank [galadril](https://github.com/galadril/) for his [pull request](https://github.com/PetrVobornik/ColorPicker/pull/5) ideas and his subversion of ColorPicker - [SimpleColorPicker](https://github.com/galadril/Xam.Plugin.SimpleColorPicker)