wpf Как установить xctk: ColorPicker цвет по умолчанию

#wpf #xaml #wpftoolkit

#wpf #xaml #wpftoolkit

Вопрос:

РЕДАКТИРОВАТЬ: мне действительно удалось устранить проблему, я делал Binding Value.Color вместо Binding Color того, что было установлено ранее. В любом случае спасибо за помощь!

Я создаю графический интерфейс, в котором есть xctk: выбор цвета в xaml:

 <GridViewColumn.CellTemplate>
    <DataTemplate>
        <xctk:ColorPicker SelectedColor="{Binding Value.Color}"  Width="40"/>
    </DataTemplate>
</GridViewColumn.CellTemplate>
  

В настоящее время цвет селектора по умолчанию — синий, я хотел бы изменить его на черный. Как мне это сделать?

Ответ №1:

Средство выбора цвета отображает цвет по умолчанию из вашего привязанного значения свойства

так что в этом случае, если значение вашего свойства.Цвет возвращает синий, тогда он будет синим

Таким образом, изменение цвета свойства на черный изменит его на черный

но в случае, если вы не хотите изменять значение свойства, вы можете использовать свойство-заполнитель со значением по умолчанию black и обновлять источник при его изменении

пример для подхода с заполнителем

 <Grid Background="{Binding Value}">
    <xctk:ColorPicker SelectedColor="{Binding PlaceHolder}"  Width="40" VerticalAlignment="Center"/>
</Grid>
  

просмотр модели

 bool isDefault = true;
public Color PlaceHolder
{
    get
    {
        if (isDefault)
            return Colors.Black;

        return Value.Color;
    }
    set
    {
        Value.Color = value;
        isDefault = false;
    }
}

public SolidColorBrush Value { get; set; }
  

в приведенном выше примере я принял значение type SolidColorBrush и инициализировал его как Value = new SolidColorBrush(Colors.Green);

Ответ №2:

Если вы используете .NET 4, то вы можете изменить Background цвет выбранной строки в GridView , просто определив несколько Resource символов… просто добавьте их в свою GridView.Resources коллекцию:

 <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Blue" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Blue" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="Black" />