2014-11-06 6 views
1

토글 버튼을 확장하는 사용자 정의 컨트롤이 있습니다. 이것은 사용자 제어는 일정한 시각적 인상을 제공 Image S를 정의하는데 사용될 수있다 ImageSource의 세 의존 특성을 갖는다 :애니메이션을위한 스타일 ControlTemplate의 자식을 처리하는 방법은 무엇입니까?

<Style TargetType="{x:Type local:SimpleFeedbackToggleButton}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type local:SimpleFeedbackToggleButton}"> 
       <Grid x:Name="BtnGrid"> 
        <Image x:Name="FeedbackImage" Source="{TemplateBinding FeedbackImageSource}" Visibility="Hidden" /> 
        <Image x:Name="NormalImage" Margin="{TemplateBinding Padding}" Source="{TemplateBinding NormalImageSource}" /> 
        <Image x:Name="DisabledImage" Source="{TemplateBinding DisabledImageSource}" Visibility="Hidden" /> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsEnabled" Value="false"> 
         <Setter Property="Visibility" Value="Visible" TargetName="DisabledImage"/> 
         <Setter Property="Opacity" Value="1.0" TargetName="BtnGrid"/> 
        </Trigger> 
        <Trigger Property="IsChecked" Value="true"> 
         <Setter Property="Visibility" Value="Visible" TargetName="FeedbackImage"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding FeedbackBlink, RelativeSource={RelativeSource Self}}" Value="True"> 
      <DataTrigger.EnterActions> 
       <BeginStoryboard x:Name="SB_BlinkFeedback"> 
        <Storyboard Storyboard.TargetProperty="Opacity"> 
         <DoubleAnimation From="1.0" To="0.3" Duration="0:0:1" RepeatBehavior="Forever" AutoReverse="True" /> 
        </Storyboard> 
       </BeginStoryboard> 
      </DataTrigger.EnterActions> 
      <DataTrigger.ExitActions> 
       <StopStoryboard BeginStoryboardName="SB_BlinkFeedback" /> 
      </DataTrigger.ExitActions> 
     </DataTrigger> 
    </Style.Triggers> 
</Style>  

속성 FeedbackBlink 시작하고 이미지의 단 하나의 점멸을 중지하는데 사용된다 다른 종속성 (FeedbackImage). 불행히도 Storyboard "SB_BlinkFeedback"에서이 이미지를 처리하는 방법을 찾을 수 없습니다. 내가 어떻게 할 수 있니?

답변

1

질문을 게시 한 직후에 해결책을 찾았습니다. DataTrigger<Style.Triggers>에서 <ControlTemplate.Triggers>으로 이동해야했습니다. 그런 다음 Storyboard 선언을 컴파일러 또는 런타임 오류없이 Storyboard.TargetName="FeedbackImage"까지 완료 할 수 있습니다.