2

ボタンが無効になったときにボタンの色が変わるのを避けたい。ボタンの色は、無効になっているかどうかにかかわらず、同じにする必要があります。

スタイルを使用して、無効になったときに背景色を変更できます。

<Style TargetType="{x:Type Button}">
...
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type Button}">
        ...
        <ControlTemplate.Triggers>
         ...
          <Trigger Property="IsEnabled" Value="false">
            <Setter TargetName="Border" Property="Background" Value="#EEEEEE" />
            <Setter TargetName="Border" Property="BorderBrush" Value="#AAAAAA" />
            <Setter Property="Foreground" Value="#888888"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

そこで背景色を変更できますが、背景色はデータバインドされていて変更できないため、動的に維持したいと考えています。

Background セッターを削除すると、デフォルトの背景色の変更が実行されます。

色の変更を無効にするにはどうすればよいですか? または、少なくとも Disabled-Background-Color をデータバインドしますか?

私の悪い英語でごめんなさい。

4

1 に答える 1

0

データ結合を最も適切な場所にしたい場合は、コントロールの相対的なDataTmplate内で宣言します。ここで、Style(既に定義されている) とコントロールに適用されるデータを指定します。

そこで、ボタンに表示したい状態と相対的な色の間のコンバーターを定義できます。

また

で自分自身を制限したい場合はStyle、データバインディングを内部で定義できますStyle。あまり論理的ではありませんが、可能です。

この答えを見てください:

WPFのMVVMパターンでボタンの背景色を変更する

于 2013-04-09T07:00:50.903 に答える