2012-05-16 22 views
1

我有一個Button ControlTemplateemplate,我想重複使用,除了BorderRadius,我想從TemplatedParent中獲得,所以我可以在Button聲明中指定它。在WPF中,我可以以某種方式使用TemplateBinding來設置模板化Button的CornerRadius?

不幸的是,CornerRadius不是Button的屬性,所以編譯器不喜歡它。

我看到有幾種方法可以把它關掉,但我不太喜歡它們。

  1. 誤用一個字段我沒有以其他方式使用(比如MinWidth?)來傳達這個新的半徑。不知道這是否會工作,因爲一個int不完全是一個CornerRadius。
  2. 使Button的子類添加CornerRadius並使用它。

是否有另一種方法可能會丟失?

+0

可能的重複http://stackoverflow.com/questions/1031196/passing-parameters-to-a-template –

+0

的確如此。然而,鑑於那個標題,難怪我沒有找到它。 –

回答

0

我唯一能想到的其他事情就是爲CornerRadius創建一個AttachedProperty並將其附加到按鈕上,然後綁定到該按鈕。我不確定綁定到AttachedProperty是否可以通過TemplatedParent工作。

另外,創建派生Button類的代碼可能比創建AttachedProperty的代碼少。所以這可能不值得。

+0

你的答案似乎與@ eren-ersonmez指出的那個dupe線程相匹配,所以我想這是我會得到的最好的答案。 –

相關問題