我有一个自定义的ClockFace UserControl,其中具有允许更改颜色、字体和指针(作为Path对象)的属性。这在自定义的TimePicker和Clock UserControls中使用。在这些父控件中,可以很好地在xaml中设置ClockFace属性。
我想要做的是公开这些ClockFace属性,以便它们可以在这两个父控件上设置(例如,Clock和TimePicker对象)。我认为将它们变成附加属性就可以解决问题,因此我尝试了其中一个颜色属性。
我可以在包含时钟的 XAML 中使用此附加属性:(Controls 是 XML 命名空间)
它可以正常编译,但是尽管附加的HourTicksBrushProperty默认值(Brushes.Black)显示出来了,但在父级Clock控件(Aqua)上设置的值从未触发上述方法或更改颜色。我有什么遗漏吗?
明确一点,我想能够在父控件上使用上述XAML来设置子ClockFace控件的HourTicksBrush属性。
非常感谢您的任何帮助。
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);
}
我可以在包含时钟的 XAML 中使用此附加属性:(Controls 是 XML 命名空间)
<Controls:Clock Controls:ClockFace.HourTicksBrush="Aqua" />
它可以正常编译,但是尽管附加的HourTicksBrushProperty默认值(Brushes.Black)显示出来了,但在父级Clock控件(Aqua)上设置的值从未触发上述方法或更改颜色。我有什么遗漏吗?
明确一点,我想能够在父控件上使用上述XAML来设置子ClockFace控件的HourTicksBrush属性。
非常感谢您的任何帮助。
somethingsomethingArgs
等同于DependencyPropertyChangedEventArgs
。 - Ben