21

ToggleButton ( ExpanderButton ) を持つ TreeView があります。トグルボタンには 2 つの画像があります (1 つは展開用、もう 1 つは非展開用)。ただし、TreeViewItem を選択すると、別の色で強調表示され、画像の色も変更したいと思います (他の色で同じものを持っています)。

問題は、ToggleButton のトリガー プロパティを TreeViewItem の IsSelected プロパティに設定する方法がわからないことです。

何か案は?

4

1 に答える 1

42

ここで誰か他の人がこれを必要とするなら。

<ControlTemplate TargetType="ToggleButton">
                <Image Name="ExpanderImage" Height="24" Width="24" Source="..\Images\Icons\32x32\Blue\Open.png" />
                <ControlTemplate.Triggers>
                    <Trigger Property="IsChecked" Value="True">
                        <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Blue\Close.png" />
                    </Trigger>
                    <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}" Value="True">
                        <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Green\Open.png" />
                    </DataTrigger>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding Path=IsChecked, RelativeSource={RelativeSource Self}}" Value="True" />
                            <Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}" Value="True" />
                        </MultiDataTrigger.Conditions>
                        <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Green\Close.png" />
                    </MultiDataTrigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
于 2010-07-05T11:53:54.193 に答える