如何将其他可绑定的可视状态组添加到按钮?

时间:2010-08-19 09:13:01

标签: silverlight user-controls visualstatemanager

我需要扩展一个按钮控件来添加一些额外的,可绑定的可视状态。

我想要创建的是另一个要绑定的布尔属性,它将在按钮上创建一个简单的可视状态更改。对于这个例子,它可能只是一个额外的边框,它根据布尔值改变颜色。

所有现有的按钮行为应该与这组新状态完全分开。

可以这样做吗?

1 个答案:

答案 0 :(得分:0)

这当然可以做到。 Here's a post引导您完成您需要执行的步骤,并包含用于在最终控件中显示属性(除了保持状态的控件)扩展控件的其他信息。你需要的部分是:

  1. 从Button(您的自定义控件类)派生的类
  2. 此控件的默认样式(位于/themes/generic.xaml中)。您可以从Button的通用样式开始,并将状态添加到它。
  3. 包含布尔值的依赖项属性
  4. 一个包含两个新状态的新VisualStateGroup
  5. 您班级中的某些代码,它们会根据您定义的布尔值将更改状态粘合在一起,可能是由于用户互动等原因造成的。
  6. 您可能会发现在Blend中编辑视觉状态会更容易,具体取决于转换的复杂程度等。