1

WPF 확장기 컨트롤에 대한 ControlTemplate을 만들려고하지만 확장 및 Collasped 상태에 애니메이션을 적용하려는로드 블록에 부딪혔습니다.이 VisualStateManager가 애니메이션을 한 번만 트리거하는 이유는 무엇입니까?

응용 프로그램이 처음 시작될 때 확장 상태에 대한 애니메이션은 한 번 트리거되지만 그 이후에는 더 이상 발생하지 않습니다. (. 난 그냥 테스트 값에 일부 가짜가)

<ControlTemplate TargetType="Expander" x:Key="RightExpander"> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Name="ContentColumn" Width="0" /> 
      </Grid.ColumnDefinitions> 
      <VisualStateManager.VisualStateGroups> 
       <VisualStateGroup x:Name="ExpansionStates"> 
        <VisualState x:Name="Expanded"> 
         <Storyboard> 
          <DoubleAnimation Storyboard.TargetName="Content" Storyboard.TargetProperty="(RenderTransform).(TranslateTransform.X)" To="-50" From="0" 
           Duration="0:0:0.3" /> 
         </Storyboard> 
        </VisualState> 
        <VisualState x:Name="Collasped"> 
         <Storyboard> 
          <DoubleAnimation Storyboard.TargetName="Content" 
Storyboard.TargetProperty="(RenderTransform).(TranslateTransform.X)" 
           To="50" From="0" Duration="0:0:0.3" /> 
         </Storyboard> 
        </VisualState> 
       </VisualStateGroup> 
      </VisualStateManager.VisualStateGroups> 
      <Border Grid.Row="0" BorderThickness="1" Panel.ZIndex="1" > 
       <Grid> 
        <ToggleButton IsChecked="{Binding IsExpanded, Mode=TwoWay, 
          RelativeSource={RelativeSource 
          TemplatedParent}}"></ToggleButton> 
        <ContentPresenter ContentSource="Header" 
          RecognizesAccessKey="True" 
          IsHitTestVisible="False" /> 
       </Grid> 
      </Border> 
      <Border Name="Content" Grid.Column="1" BorderThickness="0,1,1,1" 
       CornerRadius="0,5,5,0" Background="Pink" RenderTransformOrigin="0,0"> 
       <Border.RenderTransform> 
        <TranslateTransform X="0" Y="0" /> 
       </Border.RenderTransform> 
       <ContentPresenter Margin="4" /> 
      </Border> 
     </Grid> 
     <ControlTemplate.Triggers> 
      <Trigger Property="IsExpanded" Value="True"> 
       <Setter TargetName="ContentColumn" Property="Width" Value="{Binding 
        ElementName=Content, Path=DesiredSize.Width}" /> 
      </Trigger> 
     </ControlTemplate.Triggers> 
    </ControlTemplate> 

내가 잘못하고있는 중이 야 : 내 ControlTemplate이 현재처럼 보이는 방법을 여기

내가 여기에 무슨 일이 일어나고 있는지 확실하지 않다

,하지만입니까?

+0

어디 비주얼 상태 매니저 코드입니까? 선언과는 별도로 템플릿의 애니메이션에 대한 참조를 볼 수 없습니다. 철자가 잘못되었습니다 - 코드를 게시 할 수 있습니까? 아아 - 기존 확장기를 템플릿으로 만드는 중입니다. 맞춤법 오류 일 수 있습니까? – Charleh

답변

3

내 생각 엔의 맞춤법이 잘못되었는지 (Collasped)

아마 VSM 때문에 맞춤법 실수 스토리 보드를 찾는되지 축소

+0

그게 다야! 정말 고마워! :디 –

관련 문제