Panel.ZIndex没有处理两个不同的网格

时间:2010-07-29 04:49:08

标签: wpf wpf-controls

目的: 当鼠标在按钮上时,按钮高度应该变为两倍,按钮应显示在其他控件的顶部。控件可以出现在屏幕中“N”个面板中。

我正在使用VS 2010,我有一个主网格有2行。每行有2个网格。每个网格都有按钮。例如,网格1黄色具有颜色按钮,网格2具有蓝色按钮。我为按钮编写了以下样式。

<Style TargetType="{x:Type Buttons}"> 
    <Style.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
            <Setter Property="RenderTransform">
                <Setter.Value>
                    <ScaleTransform ScaleX="1" ScaleY="2" />
                </Setter.Value>
            </Setter>
            <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/> 
            <Setter Property="Panel.ZIndex" Value="99999"/> 
        </Trigger> 
    </Style.Triggers> 
</Style>

问题:当鼠标在网格1中的黄色按钮上时,但是黄色按钮不在网格2上的蓝色按钮上方.Panel.ZIndex不在两个不同的网格上工作。

请让我知道如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

听起来问题是网格1落后于网格2.如果它们都是同一主网格的子节点,那么你可以使用你用于Button的相同技巧并将网格的ZIndex设置为99999鼠标在它上面:

<Style TargetType="Grid">
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Panel.ZIndex" Value="99999"/>
        </Trigger>
    </Style.Triggers>
</Style>