В WPF могу ли я каким-то образом использовать TemplateBinding для установки CornerRadius шаблонной кнопки?

У меня есть Button ControlTemplateemplate, который я хотел бы использовать повторно, за исключением CornerRadius его границы, который я хотел бы получить от TemplatedParent, чтобы я мог указать его в объявлении Button.

К сожалению, CornerRadius не является свойством Button, поэтому компилятору это не нравится.

Я вижу пару способов, которыми я мог бы это сделать, но они мне не очень нравятся.

  1. Неправильное использование поля, которое я иначе не использую (скажем, MinWidth?), чтобы сообщить об этом новом радиусе. Не уверен, что это сработает, поскольку int не совсем CornerRadius.
  2. Создайте подкласс Button, чтобы добавить CornerRadius и используйте его.

Есть ли другой подход, который я мог бы пропустить?


person Grant Birchmeier    schedule 16.05.2012    source источник


Ответы (1)


Единственное, что я мог придумать, это создать AttachedProperty для CornerRadius и прикрепить его к кнопке, а затем привязать к ней. Я не уверен, что привязка к AttachedProperty будет работать через TemplatedParent.

Кроме того, вероятно, для создания производного класса Button требуется меньше кода, чем для создания AttachedProperty. Так что может и не стоит.

person Tim    schedule 16.05.2012
comment
Ваш ответ, похоже, совпадает с ответом в ветке обмана, на которую указал @eren-ersonmez, так что, думаю, это лучшее, что я получу. - person Grant Birchmeier; 16.05.2012