我可以将动态资源的属性设置为动态资源,当我改变属性资源时,父资源也会改变吗?

Can I set dynamic Resource's property as Dynamic Resource, and when I change property resource, parent resource will change also?

我有一个像这样的 VisulBrush:

<VisualBrush
    x:Key="visualBrush"
    TileMode="Tile"
    Viewbox="0,0,5 5"
    ViewboxUnits="Absolute"
    Viewport="0,0,5,5"
    ViewportUnits="Absolute">
    <VisualBrush.Visual>
        <Path
            Data="M 0 5 L 5 0 M -2 2 L 2 -2 M 3 7 L 7 3"
            RenderOptions.EdgeMode="Aliased"
            Stroke="Black"
            StrokeEndLineCap="Square" />
    </VisualBrush.Visual>
</VisualBrush>

你可以看到这个 visualBrush create strip lines.And 我将条纹线的颜色设置为 "Black",现在它看起来像这样:

现在我可以用这个绑定任何 UIElement 的背景 VisualBrush.But 我可以更改条纹线的颜色动态吗?

例如:当我有一个背景 属性 绑定到这个 VisualBrush 的网格,现在它的条纹线是黑色的,我希望当我按下一个按钮时,这个网格的背景条纹可以变成 "yellow".

我试了很多方法,但是noneworks.Please给我一些advice.Thanks。

Dynamicresource 只会"notify" 对顶层对象进行更改。

这是一种哈希表,当您设置值(切换出整个对象)时,UI 会选择它。

假设改变整个画笔不适合你。

您可以绑定一个属性,但它必须通知更改。意思是 class 中的 属性 实现了 inotify属性changed 或依赖项 属性。

对于依赖项 属性,您可以在视觉画笔上使用附加的 属性 并绑定到它。

或者您可以使用样式来设置它,提供默认值并使用触发器或数据触发器或视觉状态来更改 属性(颜色)。这当然是鼠标悬停和禁用样式在控件模板中的工作方式。