1

Button宣言で指定できるようにTemplatedParentから取得したいBorderのCornerRadiusを除いて、再利用したいButtonControlTemplateemplateがあります。

残念ながら、CornerRadiusはButtonのプロパティではないため、コンパイラはそれを好みません。

私はそれをやってのけることができるいくつかの方法を見ますが、私はそれらが本当に好きではありません。

  1. この新しい半径を伝達するために、他の方法では使用していないフィールド(たとえば、MinWidth?)を誤用します。intは正確にはCornerRadiusではないため、これが機能するかどうかはわかりません。
  2. Buttonのサブクラスを作成してCornerRadiusを追加し、それを使用します。

私が見逃しているかもしれない別のアプローチはありますか?

4

1 に答える 1

0

私が考えることができる他の唯一のことは、CornerRadiusのAttachedPropertyを作成し、それをボタンにアタッチしてから、それにバインドすることです。ただし、AttachedPropertyへのバインドがTemplatedParentを介して機能するかどうかはわかりません。

また、AttachedPropertyを作成するよりも、派生Buttonクラスを作成する方がコードが少ない可能性があります。ですから、それだけの価値はないかもしれません。

于 2012-05-16T17:24:53.683 に答える