2010-07-29 3 views
1

Цель: Когда мышь закончилась на кнопке, высота кнопки должна быть двойной, а кнопка должна отображаться поверх других элементов управления. Элементы управления могут присутствовать в «N» количестве панелей на экране.Panel.ZIndex не работает на двух разных сетках.

Я использую 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

Похоже, проблема заключается в том, что сетка 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> 
+0

Спасибо за ваши отзывы ... Он работает :-) – ksvimal

Смежные вопросы