0

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

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

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

这可以做到吗?

4

1 回答 1

0

这当然可以做到。这是一篇文章,将引导您完成您需要采取的步骤,并包含有关使用最终控件中显示的属性(除了那些保持状态的属性)扩展控件的附加信息。您需要的部分是:

  1. 派生自 Button 的类(您的自定义控件类)
  2. 此控件的默认样式(位于 /themes/generic.xaml 中)。您可以从 Button 的通用样式开始,然后向其中添加您的状态。
  3. 一个保存布尔值的依赖属性
  4. 一个新的 VisualStateGroup 包含您的两个新状态
  5. 您的类中的一些代码将更改状态与您定义的布尔值粘合在一起,可能是由用户交互等引起的。
  6. 您可能会发现在 Blend 中编辑视觉状态更容易,具体取决于您的过渡的复杂程度等。
于 2011-05-31T19:56:25.803 回答