文字列から色へのコンバーターを作成しましたが、実行すると正常に動作しますが、エディターでは「トークンが無効です」とスローされます。エラーが発生し、エディターが表示されなくなります。ビジュアルエディターを使用できなくなるため、本当に面倒です。
拡張 WPF ツールキットから ColorPicker のコンバーターを作成しました。
コンバーターのコードは次のとおりです。
public class MaddoColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Color color = Colors.Black;
if (value != null && !string.IsNullOrWhiteSpace(value.ToString()))
{
string c = value.ToString();
var convertedColor = ColorConverter.ConvertFromString(c);
if (convertedColor != null)
{
color = (Color) convertedColor;
}
}
return color;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null)
{
Color color = (Color)value;
Debug.WriteLine(color.ToString());
return color.ToString();
}
return string.Empty;
}
}
また、フォーム xaml からの関連するスニペットを次に示します。
<Window.Resources>
<wpfCatalog:MaddoColorConverter x:Key="ColorConverter" />
</Window.Resources>
<xctk:ColorPicker Grid.Row="3" Grid.Column="2" SelectedColor="{Binding ColoreTestoRGB, Converter={StaticResource ColorConverter}}"/>