1

文字列から色へのコンバーターを作成しましたが、実行すると正常に動作しますが、エディターでは「トークンが無効です」とスローされます。エラーが発生し、エディターが表示されなくなります。ビジュアルエディターを使用できなくなるため、本当に面倒です。

拡張 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}}"/>
4

1 に答える 1