1
ボタンが無効(btnUp.IsEnabled = false
)のときに色を変更したい、単純なポリラインでボタンを作成しています。 WPFトリガーとバインドの問題
<RepeatButton x:Name="btnUp" Foreground="Green">
<RepeatButton.Style>
<Style TargetType="{x:Type RepeatButton}">
<Setter Property="Content">
<Setter.Value>
<Polyline x:Name="arrowUp" Points="0,2 3,0 6,2" Stroke="{Binding RelativeSource={RelativeSource AncestorType=RepeatButton}, Path=Foreground, Mode=TwoWay}" StrokeThickness="2"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="#FFFFFFFF"/>
</Trigger>
</Style.Triggers>
</Style>
</RepeatButton.Style>
</RepeatButton>
しかし、ボタンが無効になっているときポリラインはまだ同じ(緑)色をしています。 button.foregroundとpolyline.strokeの間のデータバインディングのために、私はそれが白であると予想していましたが。私はこのそれは動作します(ボタンが折りたたまれている)にトリガを変更した場合
は、しかし:
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
明示的なプロパティ値は、スタイル値よりも優先度の高いトリガー値、より優先度の高い - ので、あなたの修正は正確に正しいです。詳細については、以下の「依存関係プロパティの優先順位リスト」セクションを参照してください。http://msdn.microsoft.com/en-us/library/ms743230.aspx –