wpf treeview实现item为不选中状态

来源:互联网 发布:淘宝店老板 编辑:程序博客网 时间:2024/06/06 17:03

     通过修改treeviewitem的template,调整IsSelect触发器中的Pane.BackGround和treeview的BackGround一致,实现item为“不选中”状态。

   

 <Window.Resources>        <Style TargetType="TreeViewItem">            <Setter Property="Template">                <Setter.Value>                    <ControlTemplate TargetType="TreeViewItem">                        <Grid>                            <Grid.ColumnDefinitions>                                <ColumnDefinition Width="Auto" MinWidth="19" />                                <ColumnDefinition Width="Auto" />                                <ColumnDefinition Width="*" />                            </Grid.ColumnDefinitions>                            <Grid.RowDefinitions>                                <RowDefinition Height="Auto" />                                <RowDefinition/>                            </Grid.RowDefinitions>                            <ToggleButton IsChecked="False"                                              ClickMode="Press"                                              Name="Expander">                                <ToggleButton.Style>                                    <Style TargetType="ToggleButton">                                        <Style.Resources>                                            <ResourceDictionary />                                        </Style.Resources>                                        <Setter Property="UIElement.Focusable" Value="False"/>                                        <Setter Property="FrameworkElement.Width" Value="16"/>                                        <Setter Property="FrameworkElement.Height" Value="16"/>                                        <Setter Property="Control.Template">                                            <Setter.Value>                                                <ControlTemplate TargetType="ToggleButton">                                                    <Border Padding="5,5,5,5"                                                                Background="#00FFFFFF"                                                                Width="16"                                                                Height="16">                                                        <Path Fill="#FFFFFFFF"                                                                  Stroke="#FF818181"                                                                  Name="ExpandPath">                                                            <Path.Data>                                                                <PathGeometry Figures="M0,0L0,6L6,0z" />                                                            </Path.Data>                                                            <Path.RenderTransform>                                                                <RotateTransform Angle="135" CenterX="3" CenterY="3" />                                                            </Path.RenderTransform>                                                        </Path>                                                    </Border>                                                    <ControlTemplate.Triggers>                                                        <Trigger Property="ToggleButton.IsChecked" Value="True">                                                            <Setter Property="UIElement.RenderTransform" TargetName="ExpandPath">                                                                <Setter.Value>                                                                    <RotateTransform Angle="180" CenterX="3" CenterY="3" />                                                                </Setter.Value>                                                            </Setter>                                                            <Setter Property="Shape.Fill" TargetName="ExpandPath">                                                                <Setter.Value>                                                                    <SolidColorBrush>#FF595959</SolidColorBrush>                                                                </Setter.Value>                                                            </Setter>                                                            <Setter Property="Shape.Stroke" TargetName="ExpandPath">                                                                <Setter.Value>                                                                    <SolidColorBrush>#FF262626</SolidColorBrush>                                                                </Setter.Value>                                                            </Setter>                                                        </Trigger>                                                        <Trigger Property="UIElement.IsMouseOver" Value="True">                                                            <Setter Property="Shape.Stroke" TargetName="ExpandPath">                                                                <Setter.Value>                                                                    <SolidColorBrush>#FF27C7F7</SolidColorBrush>                                                                </Setter.Value>                                                            </Setter>                                                            <Setter Property="Shape.Fill" TargetName="ExpandPath">                                                                <Setter.Value>                                                                    <SolidColorBrush>#FFCCEEFB</SolidColorBrush>                                                                </Setter.Value>                                                            </Setter>                                                        </Trigger>                                                        <MultiTrigger>                                                            <MultiTrigger.Conditions>                                                                <Condition Property="UIElement.IsMouseOver" Value="True"/>                                                                <Condition Property="ToggleButton.IsChecked" Value="True"/>                                                            </MultiTrigger.Conditions>                                                            <Setter Property="Shape.Stroke" TargetName="ExpandPath">                                                                <Setter.Value>                                                                    <SolidColorBrush>#FF1CC4F7</SolidColorBrush>                                                                </Setter.Value>                                                            </Setter>                                                            <Setter Property="Shape.Fill" TargetName="ExpandPath">                                                                <Setter.Value>                                                                    <SolidColorBrush>#FF82DFFB</SolidColorBrush>                                                                </Setter.Value>                                                            </Setter>                                                        </MultiTrigger>                                                    </ControlTemplate.Triggers>                                                </ControlTemplate>                                            </Setter.Value>                                        </Setter>                                    </Style>                                </ToggleButton.Style>                            </ToggleButton>                            <Border BorderThickness="{TemplateBinding Border.BorderThickness}"                                        Padding="{TemplateBinding Control.Padding}"                                        BorderBrush="{TemplateBinding Border.BorderBrush}"                                        Background="{TemplateBinding Panel.Background}"                                        Name="Bd"                                        SnapsToDevicePixels="True"                                        Grid.Column="1">                                <ContentPresenter Content="{TemplateBinding HeaderedContentControl.Header}"                                                      ContentTemplate="{TemplateBinding HeaderedContentControl.HeaderTemplate}"                                                      ContentStringFormat="{TemplateBinding HeaderedItemsControl.HeaderStringFormat}"                                                      ContentSource="Header"                                                      Name="PART_Header"                                                      HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"                                                      SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />                            </Border>                            <ItemsPresenter Name="ItemsHost"                                                Grid.Column="1"                                                Grid.Row="1"                                                Grid.ColumnSpan="2" />                        </Grid>                        <ControlTemplate.Triggers>                            <Trigger Property="TreeViewItem.IsExpanded" Value="False">                                <Setter Property="UIElement.Visibility" TargetName="ItemsHost" Value="Collapsed"/>                            </Trigger>                            <Trigger Property="ItemsControl.HasItems" Value="False">                                <Setter Property="UIElement.Visibility" TargetName="Expander" Value="Hidden"/>                            </Trigger>                            <Trigger Property="TreeViewItem.IsSelected" Value="True">                                <Setter Property="Panel.Background" TargetName="Bd" Value="DarkGreen">                                    <!--Setter.Value>                                        <DynamicResource ResourceKey="{x:Static SystemColors.HighlightBrushKey}"/>                                    </Setter.Value-->                                </Setter>                                <!--Setter Property="TextElement.Foreground">                                    <Setter.Value>                                        <DynamicResource ResourceKey="{x:Static SystemColors.HighlightTextBrushKey}" />                                    </Setter.Value>                                </Setter-->                            </Trigger>                            <Trigger Property="UIElement.IsEnabled" Value="False">                                <Setter Property="TextElement.Foreground">                                    <Setter.Value>                                        <DynamicResource ResourceKey="{x:Static SystemColors.GrayTextBrushKey}" />                                    </Setter.Value>                                </Setter>                            </Trigger>                        </ControlTemplate.Triggers>                    </ControlTemplate>                </Setter.Value>            </Setter>        </Style>    </Window.Resources>    <Grid>        <TreeView Height="200" HorizontalAlignment="Left" Margin="84,26,0,0" Name="treeView1" VerticalAlignment="Top" Width="120" Background="DarkGreen">            <TreeViewItem Header="AAAA" />            <TreeViewItem Header="BBBB" />            <TreeViewItem Header="CCCC" />        </TreeView>        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="259,93,0,0" Name="button1" VerticalAlignment="Top" Width="75" />    </Grid>


0 0
原创粉丝点击