7

私はButtonとそのスタイルを持っています:

<Button Name="MyBtn" Style="{StaticResource ButtonEnabledStyle}"
        IsEnabled="False" Opacity="1" />

<Style x:Key="ButtonEnabledStyle" TargetType="Button">
    <Style.Triggers>
        <Trigger Property="IsEnabled" Value="True" >
            <Setter Property="Opacity" Value="0.1" />
        </Trigger>
    </Style.Triggers>
</Style>

ただし、ボタン(MyBtn.IsEnabled = true)を有効にしても、不透明度は変更されません。なんで?どうすればこの問題を解決できますか?ありがとう。

4

1 に答える 1

24

(コード内の)要素に設定されたローカル値は、Opacity="1"常にスタイルまたはスタイルトリガー値よりも優先されます。依存関係プロパティ設定の優先順位リストをご覧ください。

簡単な修正は、代わりにスタイルにデフォルト値を設定することです。

<Style x:Key="ButtonEnabledStyle" TargetType="Button">
  <Setter Property="Opacity" Value="1.0" />
  <Style.Triggers>
    <Trigger Property="IsEnabled" Value="True" >
      <Setter Property="Opacity" Value="0.1" />
    </Trigger>
  </Style.Triggers>
</Style>
于 2012-09-19T11:54:03.140 に答える