/ / In WPF, posso in qualche modo utilizzare TemplateBinding per impostare il CornerRadius di un pulsante basato su modelli? - c #, wpf, pulsante, controltemplate, cornerradius

In WPF, posso usare TemplateBinding in qualche modo per impostare CornerRadius di un pulsante di modello? - c #, wpf, button, controltemplate, cornerradius

Ho un Button ControlTemplateemplate che mi piacerebbe riutilizzare, ad eccezione di CornerRadius del suo bordo, che mi piacerebbe ottenere da TemplatedParent in modo da poterlo specificare nella dichiarazione Button.

Sfortunatamente, CornerRadius non è una proprietà di Button, quindi al compilatore non piace.

Vedo un paio di modi per riuscirci, ma non mi piacciono molto.

  1. Uso improprio di un campo che altrimenti non sto usando (diciamo, MinWidth?) Per comunicare questo nuovo raggio. Non sono sicuro che funzionerà poiché un int non è esattamente un CornerRadius.
  2. Crea una sottoclasse di Button per aggiungere CornerRadius e usarlo.

C'è un altro approccio che potrei perdere?

risposte:

0 per risposta № 1

L'unica altra cosa a cui potrei pensare sarebbecreando un AttachedProperty per CornerRadius e collegandolo al pulsante, quindi vincolando a quello. Non sono sicuro, tuttavia, se l'associazione con AttachedProperty funzionerà tramite TemplatedParent.

Inoltre, è probabilmente meno codice solo per creare una classe Button derivata rispetto a creare una AttachedProperty. Quindi potrebbe non valerne la pena.