【问题标题】:Panel.ZIndex is not working on the two different GridsPanel.ZIndex 不适用于两个不同的网格
【发布时间】:2010-07-29 04:49:08
【问题描述】:

目标: 当鼠标悬停在按钮上时,按钮高度应变为两倍,并且按钮应显示在其他控件的顶部。控件可以出现在屏幕的“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 不适用于两个不同的网格。

请告诉我如何解决这个问题。

【问题讨论】:

    标签: wpf wpf-controls


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多