Wpf树型控件

<Style x:Key="ExpandCollapseToggleStyle" TargetType="{x:Type ToggleButton}">
            <Setter Property="Focusable" Value="False"/>
            <Setter Property="Width" Value="10"/>
            <Setter Property="Height" Value="10"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ToggleButton}">
                        <Border Background="Transparent" Height="10"  Width="10">
                            <Image x:Name="Tree_Ico" Source="/VirtalWelding;component/Images/TreeHidden.jpg"></Image>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
 
                            </Trigger>
                            <Trigger Property="IsChecked" Value="True">
                                <Setter Property="Source" TargetName="Tree_Ico" Value="/VirtalWelding;component/Images/TreeShow.jpg"></Setter>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="TreeViewItemStyle" TargetType="{x:Type TreeViewItem}">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
            <Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
            <Setter Property="Padding" Value="1,0,0,0"/>
            <Setter Property="IsExpanded" Value="True"></Setter>
            <Setter Property="FocusVisualStyle" Value="{StaticResource TreeViewItemFocusVisual}"/>
 
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type TreeViewItem}">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition MinWidth="19" Width="Auto"/>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>
                            <!--<ToggleButton Panel.ZIndex="1"  x:Name="Expander"  Margin="2,-1,0,0" ClickMode="Press"   Grid.Row="0"   Grid.Column="0" IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ExpandCollapseToggleStyle}"/>
                            <Rectangle Panel.ZIndex="0" Fill="#949395"  Grid.Column="0" Grid.Row="1"  Margin="3,-16,0,15" HorizontalAlignment="Stretch" x:Name="VLine" Stroke="#949395" VerticalAlignment="Stretch" Width="1"/>
                            <Border x:Name="Bd" Grid.Row="0"  Grid.Column="1" VerticalAlignment="Top"  BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                                <ContentPresenter VerticalAlignment="Bottom" x:Name="PART_Header" TextBlock.Foreground="#FFCCCCCD"  TextBlock.FontSize="14" ContentSource="Header" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                            </Border>
                            <ItemsPresenter x:Name="ItemsHost" Grid.ColumnSpan="2" Grid.Column="1" Grid.Row="1"/>-->
                            <ToggleButton Panel.ZIndex="1" x:Name="Expander"  Margin="2,-2,0,0" ClickMode="Press"   Grid.Row="0"   Grid.Column="0" IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ExpandCollapseToggleStyle}"/>
                            <Rectangle Panel.ZIndex="0"  Grid.Column="0" Margin="-35,-10,0,15" Grid.Row="0"   Fill="#949395"   HorizontalAlignment="Stretch" x:Name="VLineUp" Stroke="#949395" VerticalAlignment="Stretch"  Width="1"/>
                            <Rectangle Panel.ZIndex="0"  Grid.Column="0" Margin="-35,-15,0,10"  Grid.Row="1" Visibility="{Binding NextBaseEntityTree,Converter={StaticResource VLineVisibiltyConverter}}"  Fill="#949395"   HorizontalAlignment="Stretch" x:Name="VLineDown" Stroke="#949395" VerticalAlignment="Stretch"  Width="1"/>
                            <Border x:Name="Bd" Grid.Row="0"  VerticalAlignment="Center" Margin="0,0,0,0"  Grid.Column="1"   BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                                <ContentPresenter VerticalAlignment="Bottom" Margin="0,0,0,2" x:Name="PART_Header" TextBlock.Foreground="#FFCCCCCD"  TextBlock.FontSize="14" ContentSource="Header" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                            </Border>
                            <ItemsPresenter x:Name="ItemsHost" Margin="0,0,0,0" Grid.ColumnSpan="2" Grid.Column="1" Grid.Row="1"/>
                        </Grid>
                        
                        <ControlTemplate.Triggers> 
                            <Trigger Property="IsExpanded" Value="false">
                                <Setter Property="Visibility" TargetName="ItemsHost" Value="Collapsed"/>
                                <!--<Setter Property="Visibility" TargetName="VLine" Value="Hidden"/>-->
                                <!--<Setter Property="Margin" TargetName="VLine" Value="3,-20,0,0"/>-->
                            </Trigger>
                            <Trigger Property="IsExpanded" Value="true">
                                <Setter Property="Visibility" TargetName="ItemsHost" Value="Visible"/>
                                <!--<Setter Property="Visibility" TargetName="VLine" Value="Visible"/>-->
                                <!--<Setter Property="Visibility" TargetName="HLine" Value="Hidden"/>-->
                            </Trigger>
                            <Trigger Property="HasItems" Value="false">
                                <Setter Property="Visibility" TargetName="Expander" Value="Hidden"/>
                                <!--<Setter Property="Visibility" TargetName="VLine" Value="Hidden"/>-->
                                <Setter Property="Margin" TargetName="ItemsHost" Value="-10,0,0,0"></Setter>
                            </Trigger>
                            <Trigger Property="HasItems" Value="true">
                                <!--<Setter Property="Visibility" TargetName="HLine" Value="Visible"/>-->
                            </Trigger>
                            <Trigger Property="IsSelected" Value="true">
 
                                <Setter Property="Background" TargetName="Bd" Value="#FF2D2C2D"/>
 
                            </Trigger>
                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="IsSelected" Value="true"/>
                                    <Condition Property="IsSelectionActive" Value="false"/>
                                </MultiTrigger.Conditions>
 
                            </MultiTrigger>
                            <Trigger Property="IsEnabled" Value="false">
 
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
posted @ 2016-01-13 11:09  lxdonge  阅读(1075)  评论(0编辑  收藏  举报