我有一个自定义的 ClockFace UserControl,它具有允许更改颜色、字体和手(作为 Path 对象)的属性。这用于自定义 TimePicker 和时钟用户控件。在这些父控件中,可以在 xaml 中的 ClockFace 对象上设置 ClockFace 属性就好了。我要做的是公开这些 ClockFace 属性,以便可以在这两个父控件(例如 Clock 和 TimePicker 对象)上设置它们。我认为使它们成为附加属性就可以了,所以我尝试了其中一种颜色属性。
public static readonly DependencyProperty HourTicksBrushProperty = DependencyProperty.RegisterAttached("HourTicksBrush", typeof(Brush), typeof(ClockFace), new FrameworkPropertyMetadata(Brushes.Black, FrameworkPropertyMetadataOptions.AffectsRender));
public static void SetHourTicksBrush(DependencyObject element, Brush value)
{
element.SetValue(HourTicksBrushProperty, value);
}
public static Brush GetHourTicksBrush(DependencyObject element)
{
return (Brush)element.GetValue(HourTicksBrushProperty);
}
我可以在 Clock 所在的 xaml 中使用这个附加属性:(Controls 是 xml 命名空间)
<Controls:Clock Controls:ClockFace.HourTicksBrush="Aqua" />
它编译得很好,但是尽管显示了附加的 HourTicksBrushProperty 中的默认值 (Brushes.Black),但在父时钟控件 (Aqua) 上设置的值永远不会触发上述方法或更改颜色。我错过了什么吗?
需要明确的是,我希望能够在父控件上使用上述 xaml 来设置子 ClockFace 控件的 HourTicksBrush 属性。
任何帮助将非常感激。