有没有办法在代码中将动态资源分配给依赖项 属性

Is there a way to assign a dynamic resource to a dependency property in code

我在资源字典中定义了一个 SolidColorBrush,如下所示:

 <Color x:Key="ColorGray100">#F5F6F7</Color>

 <SolidColorBrush x:Key="BrushGray100" Color="{DynamicResource ColorGray100}" />

我在后面的代码中为用户控件定义了一个依赖项 属性,如下所示:

    /// <summary>
    /// get/set the brush for the pattern ring.
    /// The pattern ring is a full circle which the progress ring is drawn over.
    /// This Brush value is defaulted to Brushes.LightGray
    /// </summary>
    public Brush PatternRingBrush
    {
        get => (Brush)GetValue(PatternRingBrushProperty);
        set => SetValue(PatternRingBrushProperty, value);
    }

    public static readonly DependencyProperty PatternRingBrushProperty =
        DependencyProperty.Register("PatternRingBrush", typeof(Brush), typeof(UXProgressRing),
            new UIPropertyMetadata(Brushes.LightGray));

如何将“BrushGray100”SolidColorBrush 指定为默认 UI属性元数据值而不是 Brushes.LightGray?

无法将动态资源分配给依赖项 属性 的默认值。 (这也没有意义,因为默认值被评估一次,而动态资源可以根据定义更改)

但是,如果您的目标是将实际依赖项 属性 值分配给动态资源,有效地将 属性 绑定到动态资源,则此站点上已经存在描述如何实现的答案要做到这一点。 This 似乎是现有的最佳解决方案。

我将此作为答案发布而不是标记为重复,因为您的问题专门询问有关设置 默认 值的问题。