エキスパンダーの背景色をマウスのホバー上の明るいバリアントに変更したいと思います。だから私はトリガーとコンバーターを使って背景色をマウス上のより明るい色に変換すると考えました。私はシンプルに始めてトリガーを実装するだけです。それは動作します:マウスのホバー上でエキスパンダーの背景を変更します。
<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}}">
に関して、 ジェフ
はい、私はそれが私の最初の例ですが、私はそのように行うことができます知っているが、それは動作しません。私のアプリケーションで。私は明確にするために質問を編集しました。明快さの欠如のために申し訳ありません。 –
' ' –
lokusking
おそらくはいですが、明確ではないように思われる 'WhereEverYouWantToBind'部分です。私はリソース内のスタイルからビューモデルにバインドできませんか、それともできますか?私は質問の編集にxamlを追加しました。 –