#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" />