だから私は初めてwpfアプリケーションを使っていて、つまずきに遭遇しました。
私はサードパーティ (actipro) のテーマを使用しており、そのテーマ内の個々のプロパティを好きなように設定できます。
<Style.Resources>
<SolidColorBrush x:Key="{x:Static themes:AssetResourceKeys.ExpanderHeaderBackgroundNormalBrushKey}" Color="Yellow" />
</Style.Resources>
私がやりたいのは、実際には、その宣言をトリガー内に配置することです。
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<SolidColorBrush x:Key="{x:Static themes:AssetResourceKeys.ExpanderHeaderBackgroundNormalBrushKey}" Color="Yellow" />
</Trigger>
</Style.Triggers>
しかし、これはもちろん不正な構文です。
このような条件付きスタイルを設定できることを知っています
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Yellow" />
</Trigger>
</Style.Triggers>
またはこのように
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource {x:Static themes:AssetResourceKeys.ExpanderHeaderBackgroundNormalBrushKey}}" />
</Trigger>
</Style.Triggers>
ただし、これにより、背景がリソースによって定義された色に設定されます。それは私が求めているものではありません。
セッターが使用できるプロパティではない ExpanderHeaderBackground を設定する必要があります。
私の考えでは、トリガー内でリソース自体を定義できることは理にかなっているように思えます。その後、何らかの条件が満たされた場合にのみ適用されます。明らかに、それは wpf の仕組みではありません。
これを達成する方法を知っている人はいますか?