3

我想定义一个ToggleButton在选中时显示为红色前景(例如)的,而不是按下按钮的默认外观。

我看到视觉状态被维护为ToggleButton's中的命名元素ControlTemplate

在不重新定义整个模板的情况下替换/删除/自定义视觉状态的最简单方法是什么?

4

2 回答 2

1

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

将模板应用到控件后(在第一个测量/显示循环之后),您可以简单地通过使用访问实例化模板及其子组件VisualTreeHelper.GetChild (myToggleButton, 0)- 这将返回实例化模板的可视化树的根对象,您可以从中添加/删除/修改其 Children 集合中的子对象。

显然,您只是在更改该控件实例的视觉状态而不是模板资源本身,因此从同一模板创建的新控件仍将具有原始视觉外观。

我关于这个主题的真实问题在这里:如何在 Silverlight 3 中在运行时替换 ControlTemplate 部件?

于 2010-01-11T10:47:05.403 回答
-1

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

于 2009-11-13T22:50:16.847 回答