色、フォント、および手(Pathオブジェクトとして)を変更できるプロパティを持つカスタムClockFaceUserControlがあります。これは、カスタムTimePickerおよびClockUserControlsで使用されます。これらの親コントロールでは、ClockFaceプロパティをxamlのClockFaceオブジェクトに適切に設定できます。私がやろうとしているのは、これらのClockFaceプロパティを公開して、これら2つの親コントロール(ClockオブジェクトとTimePickerオブジェクトなど)に設定できるようにすることです。それらをアタッチプロパティにすることでうまくいくと思ったので、カラープロパティの1つを試してみました。
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でこの添付プロパティを使用できます:(コントロールはxml名前空間です)
<Controls:Clock Controls:ClockFace.HourTicksBrush="Aqua" />
正常にコンパイルされますが、添付のHourTicksBrushPropertyのデフォルト値(Brushes.Black)が表示されますが、親のClockコントロール(Aqua)に設定された値は、上記のメソッドを起動したり、色を変更したりすることはありません。私は何かが足りないのですか?
明確にするために、親コントロールで上記のxamlを使用して、子ClockFaceコントロールのHourTicksBrushプロパティを設定できるようにしたいと思います。
どんな助けでも大歓迎です。