Wpf中treeviewitem中的Panel.ZIndex属性

时间:2011-03-03 15:05:24

标签: wpf wpf-controls

当我将鼠标悬停时,我希望treeviewitem与其他项重叠。
为此,我在HierarchicalDataTemplate中创建了父元素(在我的情况下是它的Border),以使ZIndex为0,并在用户将鼠标悬停在HierarchicalDataTemplate.Triggers部分时将此值更改为1

<HierarchicalDataTemplate  DataType="{x:Type d:MyClass}">
    <Border Name="brd" CornerRadius="5" BorderThickness="1" Padding="3" Margin="0,0,60,0" Panel.ZIndex="0" >
        <StackPanel Orientation="Horizontal" Margin="0,0,0,0" > 

            <Image Source="../Images/icon.jpg"  Height="30"></Image>

            <TextBlock TextAlignment="Center" Text="{Binding Text}" 
                   Margin="3,0,10,0" >
            </TextBlock>  

            <Image Margin="0,0,3,0" 
                   Source="../Images/Img1.jpg" Height="30" />

            <Image Margin="0,0,0,0" 
                   Source="../Images/Img2" Height="30"/>
        </StackPanel>
    </Border>
    <HierarchicalDataTemplate.Triggers>
        <Trigger SourceName="brd" Property="IsMouseOver" Value="True">
            <Setter TargetName="brd" Property="Panel.ZIndex" Value="1"></Setter>
        </Trigger>            
    </HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>



实现这一点的整个想法是:
每当用户将鼠标悬停在treeviewitem上时,该项应该与其他控件重叠,并且应该完全可见。示例:如果项目是长文本,则不应强制用户使用滚动条,而是如果他只指向该项目,则该项目应与其他控件重叠以显示完整项目。

但我无法使用上述触发器实现此目的。

请帮我这样做。

1 个答案:

答案 0 :(得分:0)

您尝试使用ToolTip吗?我没有自己尝试,但在看到this之后我确信可以定义DataTemplate可以在property使用,所以项目会以您喜欢的方式展示

我希望这会有所帮助。

此致