<ListBox.ItemTemplate>
<DataTemplate>
<Grid x:Name="grid">
<Grid.Background>
<SolidColorBrush x:Name="backgroundBrush" Color="Transparent" Opacity="0.1"/>
</Grid.Background>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsExpanded}" Value="True">
<Setter TargetName="backgroundBrush" Property="Color" Value="Green" />
</DataTrigger>
<Trigger SourceName="grid" Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="backgroundBrush"
Storyboard.TargetProperty="Color"
To="White" Duration="0:0:1.5"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="backgroundBrush"
Storyboard.TargetProperty="Color"
AccelerationRatio="1" Duration="0:0:1.5" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
'트리거 대상을 찾을 수 없습니다. backgroundBrush'. 'WPF DataTrigger가 트리거 대상을 찾을 수 없습니다.
DataTrigger를 제거하면 컴파일되고 작동합니다. TargetName="grid" Property="Background"
을 사용하도록 DataTrigger를 변경하면 컴파일되고 작동합니다 (그러나 원하는 불투명도는 제외).
어디로 잘못 가고 있습니까?
+1, 좋은 질문입니다. WPF를 이해할 수 있다고 생각했지만 실제로 작동하지 않는 이유는 없습니다. – Heinzi
(최근 댓글이지만 아직 ...) 실제로 두 가지 색상이 있어야 할 때 색상 값을 변경하고 있습니다 (정의 됨 로컬 리소스로 사용) 트리거끼리 교환하십시오. 나는 이것이 문제의 원인이라고 생각할 것이다. – heltonbiker