代码之家  ›  专栏  ›  技术社区  ›  Greg Ennis

如何在不替换ControlTemplate的情况下更改其可视状态?

  •  3
  • Greg Ennis  · 技术社区  · 15 年前

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

    我看到可视状态在 按钮开关 ControlTemplate .

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

    2 回复  |  直到 11 年前
        1
  •  1
  •   Community CDub    7 年前

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

    将模板应用到控件之后(在第一个度量/显示周期之后),您可以使用 VisualTreeHelper.GetChild (myToggleButton, 0) -这将返回实例化模板的可视化树的根对象,从中可以添加/删除/修改其子集合中的子对象。

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

    关于这个问题,我的实际问题是: How do I replace a ControlTemplate part at runtime, in Silverlight 3?

        2
  •  -1
  •   Dave Clemmer manu    11 年前

    你试过创造自己的 ControlTemplate 并设置 BasedOn 参数为标准,然后只更改了您需要的内容?