Как я могу изменить кнопку Expander, когда RadtreeView открыт или закрыт?
У меня было две иконки, это a и b; Мне нужно, чтобы мой radtreeviewitem показывал кнопку Expander со значком a, когда он открывался, и показывал значок b, когда он закрывался. Дует две иконы
<Style x:Key="ExpanderStyleOpen" TargetType="ToggleButton">
<Setter Property="IsEnabled" Value="True" />
<Setter Property="IsTabStop" Value="False" />
<Setter Property="ToggleButton.IsChecked" Value="True" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
...
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ExpanderStyleClose" TargetType="ToggleButton">
<Setter Property="IsEnabled" Value="True" />
<Setter Property="IsTabStop" Value="False" />
<Setter Property="ToggleButton.IsChecked" Value="False" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
...
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
тогда мой радтревью...
<telerik:RadTreeView Name="radTreeView"
<!--static can't change...:(-->
ExpanderStyle="{StaticResource ExpanderStyleClose}"
FontSize="12"
IsLineEnabled="True"
IsRootLinesEnabled="False"
Visibility="{Binding IsVisible}">
1 ответ
Решение
Используя Trigger
Вы можете объединить два стиля в один.
Идея заключается в следующем:
- Установите закрытое изображение как фактическое изображение стиля.
- Создать
Trigger
изменитьToggleButton
"sIsChecked
имущество. Этоfalse
когда "закрыто",true
когда открыли.
Примерно так должно работать:
<Style x:Key="ExpanderStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="IsEnabled" Value="True" />
<Setter Property="IsTabStop" Value="False" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<StackPanel Orientation="Horizontal">
<Grid SnapsToDevicePixels="False" Background="Transparent">
<Image x:Name="expanderImage" Source="..." />
</Grid>
<ContentPresenter />
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="false">
<Setter Property="Source" TargetName="expanderImage" Value="..." />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>