3

我想定义一个ToggleButton,它在选中时显示为红色前景(例如),而不是按下按钮的默认外观。如何更改ControlTemplate的可视状态而不替换它?

我看到视觉状态在ToggleButtonControlTemplate内保持为命名元素。

什么是最简单的方法来取代/删除/自定义视觉状态而不重新定义整个模板?

回答

1

我意识到这已经很晚了,但我碰到了同样的问题,并且自己找出了解决方案,所以希望这对某些人有用。

的模板已被应用到控制(第一小节/显示周期后),你可以简单地通过VisualTreeHelper.GetChild (myToggleButton, 0)访问实例化的模板及其子组件 - 这将返回实例化模板的可视化树的根对象,您可以在其中添加/删除/修改其Children集合中的子对象。

很明显,你只是在改变实例的视觉状态,而不是模板资源本身,所以从同一个模板创建的新控件仍然具有原始的可视外观。

我对这个问题realted问题就在这里:How do I replace a ControlTemplate part at runtime, in Silverlight 3?

+0

这就是酷,我想一个XAML的解决方案,但嘿,不管工作。 – 2010-01-14 03:24:15

-1

您是否尝试过创建自己的ControlTemplate并将参数BasedOn设置为标准,然后只更改所需的参数?

+0

CONTROLTEMPLATES没有任何支持算法FMP参数.. – franssu 2013-10-02 10:33:16

相关问题