2015-12-02 2 views
0

У меня есть элемент управления WPF, который я хочу оживить, исходя из значения свойства IsInteracting, определенного в содержащем UserControl (с именем «UserControl»). У меня есть следующий стиль, определенный в UserControl, с анимацией, ориентированной на сетку, также определенной в UserControl.Запустите анимацию WPF, когда изменилось свойство на другом элементе управления.

<UserControl.Resources> 
    <Style TargetType="Grid"> 
     <Setter Property="Opacity" Value="0" /> 
     <Setter Property="Height" Value=""></Setter> 
     <Style.Triggers> 
      <Trigger Property="IsInteracting" Value="True" SourceName="UserControl"> 
       <Trigger.EnterActions> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimationUsingKeyFrames 
           Storyboard.Target="{Binding ElementName=ControlGrid}" 
           Storyboard.TargetProperty="Opacity" 
           > 
           <EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="1"/> 
           <EasingDoubleKeyFrame KeyTime="0:0:0.8" Value="1"/> 
           <EasingDoubleKeyFrame KeyTime="0:0:1.3" Value="0"/> 
          </DoubleAnimationUsingKeyFrames> 
         </Storyboard> 
        </BeginStoryboard> 
       </Trigger.EnterActions> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 

Это не работает, так как имя «UserControl» не распознается. Я считаю, что есть проблемы, которые препятствуют привязке элементов за пределами стиля?

Как мне сделать то, что я пытаюсь сделать?

ответ

0

Попробуйте вместо

<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=IsInteracting}" Value="True"> 
    <DataTrigger.EnterActions>        
    </DataTrigger.EnterActions> 
</DataTrigger> 
0

Я думаю, что стиль не подходит для использования какого-либо другого (внешнего) триггера управления для запуска анимации. Я предлагаю вам посмотреть на следующее решение here, возникла аналогичная проблема.

Я буду рад помочь, если у вас возникнут проблемы с кодом. С уважением.

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