2016-07-15 34 views
1

エキスパンダーの背景色をマウスのホバー上の明るいバリアントに変更したいと思います。だから私はトリガーとコンバーターを使って背景色をマウス上のより明るい色に変換すると考えました。私はシンプルに始めてトリガーを実装するだけです。それは動作します:マウスのホバー上でエキスパンダーの背景を変更します。

<StackPanel> 
    <StackPanel.Resources> 
     <Style TargetType="{x:Type Expander}"> 
      <Style.Triggers> 
       <Trigger Property="Control.IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="Red"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </StackPanel.Resources> 

    <Expander Header="Header"> 
     <StackPanel> 
      <TextBox Background="Transparent">Content</TextBox> 
     </StackPanel> 
    </Expander> 

</StackPanel> 

私はほとんど私が望むことを達成することができます。しかし、私はこのようなエクスパンダに色を設定することができるようにしたい:

<Expander Header="Header" Background="Yellow"> 

瞬間、私は色の切り替えが動作を停止し、エキスパンダーが常に黄色であることを追加します。なぜそれが起こっているのですか、どのように私の目標を達成することができますか?

編集:最終的なアプリケーションでは、バックグラウンドカラーがビューモデルにデータバインドされている複数のエキスパンダーを持つitemscontrolがあるので、スタイルの色を設定できません。

<ItemsControl ItemsSource="{Binding TestStepDescriptions}"> 
    <ItemsControl.Resources> 
     <DataTemplate DataType="{x:Type localVMsTestEngines:AutomaticTestStepDescription}"> 
      <Expander Background="{Binding StepStatus, Converter={StaticResource StepStatusToColorConverter}}"> 

に関して、 ジェフ

答えて

1

あなたはトリガーを使用する場合は、直接パンダにその色を設定することはできません。

代わりに、あなたはこのようにそれをしなければならない。

<ItemsControl ItemsSource="{Binding TestStepDescriptions}"> 
    <ItemsControl.Resources> 
     <DataTemplate DataType="{x:Type localVMsTestEngines:AutomaticTestStepDescription}"> 
      <Expander > 
<Expander.Style> 
    <Style TargetType="{x:Type Expander}"> 
    <Setter Property="Background" Value="{Binding StepStatus, Converter={StaticResource StepStatusToColorConverter}}"/> 
       <Style.Triggers> 
        <Trigger Property="Control.IsMouseOver" Value="True"> 
         <Setter Property="Background" Value="Red"/> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
</Expander.Style> 
</Expander> 

使用 <Expander Header="Header">

+0

はい、私はそれが私の最初の例ですが、私はそのように行うことができます知っているが、それは動作しません。私のアプリケーションで。私は明確にするために質問を編集しました。明快さの欠如のために申し訳ありません。 –

+0

'' – lokusking

+0

おそらくはいですが、明確ではないように思われる 'WhereEverYouWantToBind'部分です。私はリソース内のスタイルからビューモデルにバインドできませんか、それともできますか?私は質問の編集にxamlを追加しました。 –

関連する問題