我可以将动态资源的属性设置为动态资源,当我改变属性资源时,父资源也会改变吗?
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 或依赖项 属性。
对于依赖项 属性,您可以在视觉画笔上使用附加的 属性 并绑定到它。
或者您可以使用样式来设置它,提供默认值并使用触发器或数据触发器或视觉状态来更改 属性(颜色)。这当然是鼠标悬停和禁用样式在控件模板中的工作方式。
我有一个像这样的 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 或依赖项 属性。
对于依赖项 属性,您可以在视觉画笔上使用附加的 属性 并绑定到它。
或者您可以使用样式来设置它,提供默认值并使用触发器或数据触发器或视觉状态来更改 属性(颜色)。这当然是鼠标悬停和禁用样式在控件模板中的工作方式。