在WPF中,我可以以某种方式使用TemplateBinding来设置模板化按钮的CornerRadius吗?

时间:2012-05-16 17:18:52

标签: c# wpf button controltemplate cornerradius

我有一个我想要重复使用的Button ControlTemplateemplate,除了它的Border的CornerRadius,我想从TemplatedParent获取它,所以我可以在Button声明中指定它。

不幸的是,CornerRadius不是Button的属性,因此编译器不喜欢它。

我看到了几种可以解决它的方法,但我并不是非常喜欢它们。

  1. 滥用字段我没有使用(例如,MinWidth?)来传达这个新半径。不确定这是否有效,因为int不完全是一个CornerRadius。
  2. 创建Button的子类以添加CornerRadius并使用它。
  3. 我可能会缺少另一种方法吗?

1 个答案:

答案 0 :(得分:0)

我能想到的另一件事就是为CornerRadius创建一个AttachedProperty并将其附加到按钮,然后绑定到该按钮。我不确定绑定到AttachedProperty是否可以通过TemplatedParent工作。

此外,创建派生Button类的代码可能少于创建AttachedProperty的代码。所以它可能不值得。