Вы пытаетесь установить значение цвета непосредственно для свойства Fill , которое имеет тип Brush. Вы можете просмотреть окно вывода, чтобы обнаружить ошибки привязки .вам нужен valueconverter , чтобы преобразовать ваш цвет в правильную кисть, или вам нужно сделать вот так
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
SevenSegmentColor =new SolidColorBrush(Color.FromRgb(251, 23, 23));
DataContext=this;
}
public SolidColorBrush SevenSegmentColor { get; set; }
}
РЕДАКТИРОВАТЬ
Если вы назначаетеDatacontext до установки значения свойства, пользовательский интерфейс никогда не будет уведомлен об изменении вашего свойства. Как в вашем случае вы назначаете datacontext, используя
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Таким образом, Datacontext устанавливается во время инициализацииВашему свойству SevenSegmentColor
присвоено значение. Позднее после инициализации, когда вы присвоили значение цвета для своего свойства, пользовательский интерфейс никогда не будет получать уведомления, и, следовательно, ваш цвет не отображается в пользовательском интерфейсе. Чтобы решить эту проблему, необходимо реализовать INotifyPropertyChanged Интерфейс в вашем UserControl
Образец
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window,INotifyPropertyChanged
{
private SolidColorBrush sevenSegmentColor;
public MainWindow()
{
InitializeComponent();
SevenSegmentColor =new SolidColorBrush(Color.FromRgb(251, 23, 23));
}
public SolidColorBrush SevenSegmentColor
{
get
{
return sevenSegmentColor;
}
set
{
sevenSegmentColor = value;
// Call OnPropertyChanged whenever the property is updated
OnPropertyChanged("SevenSegmentColor");
}
}
// Declare the event
public event PropertyChangedEventHandler PropertyChanged;
// Create the OnPropertyChanged method to raise the event
public void OnPropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
}