[求助]请问在treeview中,选中一项后,背景色整个一行变色?

JimCarter
领域专家: 后端开发技术领域
2017-08-03 02:34:27


实现如图所示的效果。
现在尝试了各种办法均不成功,左边总是会缺一块。
...全文
466 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 catshitone 的回复:
感谢版主的回答,不过当层级较多的时候,效果就不对了,如图: 最后采用的解决方法是,根据当前Item的层级,动态的改变其margin。
你太聪明了!
JimCarter 2017-08-04
  • 打赏
  • 举报
回复
感谢版主的回答,不过当层级较多的时候,效果就不对了,如图:


最后采用的解决方法是,根据当前Item的层级,动态的改变其margin。
  • 打赏
  • 举报
回复
改成你自己的样式

   <Style x:Key="treeViewItemStyle" TargetType="TreeViewItem">
             <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TreeViewItem}">
                    <Grid x:Name="grid">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <ToggleButton Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"  Panel.ZIndex="3" Width="15" HorizontalAlignment="Left" Height="15" x:Name="Expander" ClickMode="Press"  IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"/>
                        <Border x:Name="Bd" Grid.Row="0" Margin="-40,0,0,0"  VerticalAlignment="Center"  Grid.Column="0"   BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                            <ContentPresenter VerticalAlignment="Bottom" Margin="70,0,0,0" x:Name="PART_Header" ContentSource="Header" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                        </Border>
                        <ItemsPresenter x:Name="ItemsHost" Margin="20,0,0,0" Grid.Column="0" Grid.Row="1"/>
                    </Grid>
                   <ControlTemplate.Triggers>
                        <Trigger Property="IsExpanded" Value="false">
                            <Setter Property="Visibility" TargetName="ItemsHost" Value="Collapsed"/>
                        </Trigger>
                        <Trigger Property="IsExpanded" Value="true">
                            <Setter Property="Visibility" TargetName="ItemsHost" Value="Visible"/>
                        </Trigger>
                        <Trigger Property="HasItems" Value="false">
                            <Setter Property="Visibility" TargetName="Expander" Value="Hidden"/>
                        </Trigger>
                        <Trigger Property="IsSelected" Value="true">
                            <Setter Property="Background" TargetName="Bd" Value="Red"/>
                        </Trigger>
                        <MultiTrigger>
                            <MultiTrigger.Conditions>
                                <Condition Property="IsSelected" Value="False"></Condition>
                                <Condition Property="IsMouseOver" SourceName="Bd" Value="True"/>
                            </MultiTrigger.Conditions>
                            <Setter Property="Background" TargetName="Bd" Value="Red"/>
                        </MultiTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        </Style>

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧