如何使用xaml在wpf应用程序中为treeview项添加不同的图标?

时间:2013-06-13 04:51:10

标签: wpf treeview

我有一个使用数据集填充的树视图。现在我需要向treeview节点添加不同的图标。如何使用xaml添加它们?

2 个答案:

答案 0 :(得分:0)

您需要为TreeViewItem添加自定义模板,如下所示:

<TreeView.Resources>
    <Style TargetType="{x:Type TreeViewItem}">
        <Setter Property="HeaderTemplate">
            <Setter.Value>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">                                 
                        <CheckBox Tag="{Binding}" />
                        <Image Source="{Binding Converter={StaticResource CustomImagePathConvertor}}" />
                        <TextBlock Text="{Binding}" />
                    </StackPanel>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</TreeView.Resources>

答案 1 :(得分:0)

您可以更改Image Path并使用Template来实施它:

<ToggleButton x:Name="Expander" ClickMode="Press">
    <ToggleButton.Style>
        <Style TargetType="{x:Type ToggleButton}">
            <Setter Property="Focusable" Value="False"/>
            <Setter Property="Width" Value="16"/>
            <Setter Property="Height" Value="16"/>

            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ToggleButton}">
                        <Grid Height="16" Width="16">
                            <Image x:Name="imgBkg" />
                        </Grid>

                        <ControlTemplate.Triggers>
                            <Trigger Property="IsChecked" Value="True">
                                <Setter Property="Source" TargetName="imgBkg" Value="/XXXX;component/YourImage.png"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ToggleButton.Style>
</ToggleButton>