我想定义一个ToggleButton
,它在选中时显示为红色前景(例如),而不是按下按钮的默认外观。如何更改ControlTemplate的可视状态而不替换它?
我看到视觉状态在ToggleButton
的ControlTemplate
内保持为命名元素。
什么是最简单的方法来取代/删除/自定义视觉状态而不重新定义整个模板?
我想定义一个ToggleButton
,它在选中时显示为红色前景(例如),而不是按下按钮的默认外观。如何更改ControlTemplate的可视状态而不替换它?
我看到视觉状态在ToggleButton
的ControlTemplate
内保持为命名元素。
什么是最简单的方法来取代/删除/自定义视觉状态而不重新定义整个模板?
我意识到这已经很晚了,但我碰到了同样的问题,并且自己找出了解决方案,所以希望这对某些人有用。
的模板已被应用到控制(第一小节/显示周期后),你可以简单地通过VisualTreeHelper.GetChild (myToggleButton, 0)
访问实例化的模板及其子组件 - 这将返回实例化模板的可视化树的根对象,您可以在其中添加/删除/修改其Children集合中的子对象。
很明显,你只是在改变的实例的视觉状态,而不是模板资源本身,所以从同一个模板创建的新控件仍然具有原始的可视外观。
我对这个问题realted问题就在这里:How do I replace a ControlTemplate part at runtime, in Silverlight 3?
您是否尝试过创建自己的ControlTemplate
并将参数BasedOn
设置为标准,然后只更改所需的参数?
CONTROLTEMPLATES没有任何支持算法FMP参数.. – franssu 2013-10-02 10:33:16
这就是酷,我想一个XAML的解决方案,但嘿,不管工作。 – 2010-01-14 03:24:15