如何在打开或关闭radtreeview时更改Expander按钮?

时间:2012-08-24 13:03:45

标签: c# telerik expander togglebutton radtreeview

我有两个图标,分别是a和b; 我需要我的radtreeviewitem在打开时显示带有图标a的Expander按钮,并在关闭时显示图标b。 fllowing是两个图标

<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>
然后我的radtreeview ......

<telerik:RadTreeView Name="radTreeView"
<!--static can't change...:(-->
                             ExpanderStyle="{StaticResource ExpanderStyleClose}"
                             FontSize="12"
                             IsLineEnabled="True"
                             IsRootLinesEnabled="False"
                             Visibility="{Binding IsVisible}">

1 个答案:

答案 0 :(得分:1)

通过使用Trigger,您可以将两种样式合并为一种。

这个想法是:

  1. 将关闭的图像设置为样式的实际图像。
  2. 创建Trigger以更改ToggleButton的{​​{1}}媒体资源。 “关闭”时为IsChecked,打开时为false
  3. 这样的事情应该有效:

    true