2

内部にボタンとボタンのスタイルを持つ UserControl を作成しました。このスタイルは、マウス オーバー トリガーのボタンの背景を設定します。ここで、タイプ ICommand の依存関係プロパティを追加し、ボタン コマンドをこの新しいプロパティに設定しました。コマンド バインディングは適切に機能しますが、カスタム コントロールが無効になっている場合 (canexecute = false)、マウス オーバー トリガーによって背景が変更されます。

マウスオーバートリガーを次のように変更しようとしましたが、機能しません:

<MultiTrigger.Conditions>
    <Condition Property="IsMouseOver" Value="True"/>
    <Condition Property="IsEnabled" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" Value="Orange"/>
</MultiTrigger>

誰でも助けることができますか?

4

1 に答える 1

1

条件で参照するIsEnabledプロパティは、ボタンではなく、コントロールのプロパティだと思います。したがって、コントロールが有効になり、トリガー条件が真になるのはそのためです。ボタンにアクセスするには、MarkupExtensionを使用してみてくださいRelative Source
次のようなことを試してみてください。

<Condition Binding="{Binding RelativeSource={RelativeSource
                                 AncestorType={x:Type Button}},
                             Path=IsEnabled}"
           Value="True"/>
于 2011-09-13T18:23:28.447 に答える