2013-06-13 15 views
13

Ich muss eine Farbauswahl in meiner WPF-Anwendung erstellen. Wenn ich auf irgendeine Farbe klicke, sollte der Code dieser Farbe in ein Textfeld kommen. Ich habe viel gegoogelt, aber nichts gefunden, was meiner Anforderung entsprach. Bitte teilen Sie, wenn Sie das schon einmal gemacht haben.WPF Color Picker Implementierung

+0

Dieses Steuerelement, wie unten erwähnt, existiert bereits, also ist es besser, dieses zu verwenden als es neu zu erstellen, es sei denn, Sie haben ein wirklich spezifisches Problem, das Sie damit nicht lösen können. –

+0

"Ich habe gesucht, aber nichts davon war Plug-and-Play-Code, und ich möchte keine eigentliche Programmierung machen, also tue ich das vielleicht für mich?" – Krythic

Antwort

33

Wie Jodha sagte, sollten Sie das Color Picker Control aus dem WpfToolkit Extended verwenden. die Farbauswahl Steuerung der Umsetzung ist einfach, tun einfach etwas wie folgt aus:

Setzen Sie diese in Ihrem Window-Objekt:

xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" 

Und das, wo Sie Ihre Farbauswahl wollen.

<xctk:ColorPicker Name="ClrPcker_Background" SelectedColorChanged="ClrPcker_Background_SelectedColorChanged"></xctk:ColorPicker> 

Dann alles, was Sie tun müssen, ist die SelectedColorChanged Ereignis verwenden, um den Text in das Textfeld zu ändern, wie folgt aus:

private void ClrPcker_Background_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color> e) 
{ 
    TextBox.Text = "#" + ClrPcker_Background.SelectedColor.R.ToString() + ClrPcker_Background.SelectedColor.G.ToString() + ClrPcker_Background.SelectedColor.B.ToString(); 
} 

hoffe, das hilft!

+8

Sie können auch die 'ColorPicker.SelectedColorProperty' an eine' System.Windows.Media.Color'-Eigenschaft binden und die 'TextBox' an die Eigenschaft binden und einen' Converter' verwenden, um den ARGB-Wert auf diese Weise zu ändern Verwenden Sie die 'TextBox', um die Farbe ebenfalls zu ändern. –

+2

Fehler erhalten: Colorpicker existiert nicht in xmlns: xctk = "http://schemas.xceed.com/wpf/xaml/toolkit" in meiner XAML-Datei –

+0

@NareshKumar Ich lade einfach das Xceed.Wpf.Toolkit herunter und benutze das Assembly stattdessen. –

4

Werfen Sie einen Blick auf ColorBox Kontrolle bei Codeplex. Sie können damit auch lineare und radiale Verläufe erstellen.