私はこのようなことをしたいです:
<ControlTemplate.Triggers>
<Trigger Property="Width" Value=">25">
<!-- Set values here -->
</Trigger>
</ControlTemplate.Triggers>
とにかくこのようなことをするのですか?
カスタムコンバーターが必要です。 記事 を見てください
データトリガーを使用して、バインディングRelativeSourceをSelfに設定できます。データトリガーはバインディングを可能にし、バインディングはコンバーターを可能にします。
例:
<Button Content="I change colour depending on my width for some reason">
<Button.Triggers>
<DataTrigger
Binding="{Binding
Path=Width,
RelativeSource={RelativeSource Self},
Converter={StaticResource isLessThanConverter},
ConverterParameter=50}"
Value="True">
<Setter Property="Button.Background" Value="Red" />
DataTrigger>
Button.Triggers>
Button>
背後にあるコードなしではありません。通常の練習は:
SP1で何かが追加された可能性がありますが、これを過去に達成した方法は、値をブール値に変換するValueConvertorを使用することです。
あなたの例では、値が25より大きい場合、コンバーターはtrueを返し、それ以外の場合はfalseを返します。それが意味をなさない場合は、例をあげることができます:-)
Data Triggerは正確な値のみを検証し、「評価された値」(より大きい、より小さい、加算など)は検証しません。正確な値に変換するにはコンバータが必要です。