2013-08-26 3 views
1

Следующий триггер стиль прекрасно работает и исчезает в моем контроле, когда я сделать его видимым:Multiple стиль триггеров не работает

<UserControl.Style> 
    <Style> 
     <Style.Triggers> 
      <Trigger Property="FrameworkElement.Visibility" Value="Visible"> 
       <Trigger.EnterActions> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.0" To="1.0" Duration="0:0:1.4"/> 
         </Storyboard> 
        </BeginStoryboard> 
       </Trigger.EnterActions> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Style> 

Теперь я добавить еще один триггер, чтобы мой стиль для того, чтобы исчезнуть, когда я сделать его невидимым :

<Trigger Property="FrameworkElement.Visibility" Value="Hidden"> 
    <Trigger.EnterActions> 
     <BeginStoryboard> 
      <Storyboard> 
       <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:1.4"/> 
      </Storyboard> 
     </BeginStoryboard> 
    </Trigger.EnterActions> 
</Trigger> 

Но это не работает и даже искажает поведение первого триггера. Что мне не хватает?

+1

Что вы подразумеваете под этим не работает? вы ожидаете, что контроль исчезнет, ​​когда вы просто сделаете его невидимым, он не исчезнет, ​​если вы не увидите его. есть несколько хороших обходных путей: http://stackoverflow.com/questions/1013817/wpf-fade-animation –

+0

@ sa_ddam213: Спасибо за ссылку. Я пытаюсь использовать метод Нока, но не могу заставить его работать. Где я могу добавить этот стиль и где находится свойство зависимостей? – dotNET

+0

Это для конкретного элемента управления или для всех элементов управления? –

ответ

0

Замечания, которые у вас есть, хорошо подходят для этого ответа. Однако, если вы все еще возникают проблемы с реализацией этого, вы можете использовать

This sample download, который в значительной степени точное выполнение, как показано here

  • В данном примере MainWindow хозяевам UserControl которого Visibility может быть переключается с помощью Button от MainWindow, который в свою очередь используетDP UserControl, чтобы дать эффект постепенного выцветания.

Style The упомянутый определен для UserControl и после добавления DP к UserControl, вы в значительной степени использовать IsOpen свойство для переключения видимости Fade In XI в/Out и впредь.

+0

. Это большая помощь. Я смог продолжить работу и сделать анимацию «синхронной» в том смысле, что установка «IsOpen» на «false» остановит переход кода на следующую строку до завершения затухания. Благодаря тонну. – dotNET

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