【问题标题】:How can I change Expander button when the radtreeview is opened or closed?打开或关闭 radtreeview 时如何更改 Expander 按钮?
【发布时间】:2012-08-20 01:13:29
【问题描述】:

我有两个图标,分别是a和b; 我需要我的 radtreeviewitem 在打开时显示带有图标 a 的 Expander 按钮,并在关闭时显示图标 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>

然后我的 radtreeview...

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

【问题讨论】:

    标签: c# telerik expander togglebutton radtreeview


    【解决方案1】:

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

    想法是:

    1. 将闭合图像设置为样式的实际图像。
    2. 创建Trigger 以更改ToggleButtonIsChecked 属性。 “关闭”时为 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 2022-06-24
      • 2014-08-23
      • 1970-01-01
      • 2013-12-13
      相关资源
      最近更新 更多