2014-07-24 14 views
6

Ich habe stundenlang nach einer Lösung für mein Problem auf Google gesucht, aber es gibt nicht viele Informationen zu finden.WPF Toolkit Color Picker Vorlage bearbeiten jetzt keine Farben verfügbar

Ich verwende WPF Toolkit v2.2.1.

Ich habe ein Color Picker Steuerelement in meiner WPF-Anwendung, die angepasst werden muss. Ich bearbeite die Kontrollschablone des Farbwählers in App.xaml, um sie auf alle Farbwähler anzuwenden.

Sobald ich die Vorlage verwende, verschwinden alle verfügbaren Farben vom Color Picker. Ich habe versucht, neue verfügbare Farben aus Code ohne Erfolg zuzuweisen.

Die Sammlung von Farben sind da, sie werden einfach nicht angezeigt, wie es scheint.

Dies ist, wie der CP definiert in meinem MainWindow.xaml ist

<xctk:ColorPicker x:Name="cpRing" SelectedColorChanged="cpRing_Changed" HorizontalAlignment="Left" Margin="238,5,0,0" VerticalAlignment="Top" Height="20" Width="39" Foreground="Black"/> 

Die Steuervorlage zu groß ist hier leider einzufügen. Aber dies sollte leicht reproduzierbar sein, indem Sie einen CP zu einem wpf-Fenster hinzufügen und rechtsklicken Sie es in der Entwurfsansicht und wählen Sie Vorlage bearbeiten. Sobald es aufgetragen wird, verschwinden die Farben, ohne etwas zu verändern.

Weiß jemand, was zu tun ist, damit die verfügbaren Farben beim Bearbeiten der Kontrollschablone angezeigt werden?

Mit freundlichen Grüßen

Antwort

5

yep, es hat etwas mit seinem Stil. Aber wenn Sie beobachten, ist es Stil sorgfältig werden Sie das Problem herauszufinden:

Suche Schlüsselwort StandardColors oder AvailableColors in XAML, hier ist StandardColors ‚s Vorlage:

<ListBox x:Name="PART_StandardColors" Grid.Row="1"> 
     <ListBox.Style> 
      <Style TargetType="{x:Type ListBox}"> 
      <Setter Property="Background" Value="Transparent"/> 
      <Setter Property="BorderThickness" Value="0"/> 
      <Setter Property="ItemsPanel"> 
      .... 
     </ListBox.Style> 
</ListBox> 

Sie das Listenfeld sehen kann, hat ItemSource nicht gesetzt , so können Sie es selbst hinzufügen:

<ListBox x:Name="PART_StandardColors" ItemsSource="{TemplateBinding StandardColors}" Grid.Row="1"> 

bearbeiten listbox von AvailableColors:

<ListBox x:Name="PART_AvailableColors" ItemsSource="{TemplateBinding AvailableColors}" Grid.Row="1"> 

jetzt funktioniert es.

+0

Es funktioniert! Brillant. Vielen Dank. – Nicki

Verwandte Themen