[英]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 指定为默认 UIPropertyMetadata 值而不是 Brushes.LightGray?
无法将动态资源分配给依赖属性的默认值。 (这也没有意义,因为默认值被评估一次,而动态资源可以根据定义更改)
但是,如果您的目标是将实际的依赖属性值分配给动态资源,将属性有效地绑定到动态资源,则此站点上已经存在描述如何执行此操作的答案。 这似乎是现有的最佳解决方案。
我将其发布为答案而不是标记为重复,因为您的问题专门询问设置默认值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.