0

私が入手したカスタマイズされた Slider テンプレートでは、メイン ボーダーの高さはTemplateBinding Heightプロパティにバインドされています。Thumb 要素の高さの値を、前に述べたTemplateBinding Heightプロパティに対して 2 ~ 3 ピクセル高くしたいと考えています。ValueConverters と AttachedProperties を使用せずにそれを実現するエレガントな方法はありますか? 何かのようなもの

Height="{TemplateBinding Height} + 3"

4

1 に答える 1

1

2 オプション:

1) Height が -3 にバインドされているコントロールのマージンを設定することを検討してください。これは、「2〜3ピクセル高い」という説明を満たすと思います。-3 でない場合は、他のマージン値で遊ぶことができます。

2) 1 が機能しない場合は、IValueConverterクラスを作成し、それをバインディングのコンバーターとして設定する必要があります。残念ながら、TemplateBinding はコンバーターをサポートしていません。これは、Control の前向きのプロパティへの軽量接続を意図しているためです。

バインディングは次のようになります。

Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height, Converter={StaticResource ReferenceToMyPlus3Converter}}"

コンバーターの作成例へのリンクを次に示します。

于 2013-03-27T19:55:38.877 に答える