시작 스토리 보드에서 다른 스토리보드 타임라인
-
03-07-2019 - |
문제
나는 스토리보드(1)는 몇 가지 기본적인 애니메이션에서 2 개의 초입니다.내가 원하는 스토리보드(1)모든 애니메이션 시설 내가 그것을 설정하(이 모든 작업 괜찮습니다).하지만에서 3 초로 스토리보드(1)고 싶은 시작한 스토리보드(2)및 종료보(1)사용자 상호 작용없이다.
만 일을 할 수있는 나를 이렇게 때 클릭을 추가할 수 있습니다.내가 이것을 원하는 것을 자동적인 위치를 기반으로 현재 스토리보드(1)니다.
이 충분한 감각입니다.알려주시기 바랍해야 하는 경우 나를 설명하는 무언가를 전하고 있다.
감사합니다.
편집:게시하시기 바랍에 대한 답 XAML 나 VB.net 언어입니다.:)
해결책 3
잘 나는 솔루션입니다.나는 그냥 양산 새로운 스레드를 기다리의 3 초과한 다음에는 호출을 실행하는 스토리보드에서는 스레드가 있습니다.
Dim board As Storyboard = New Storyboard
board = DirectCast(TryFindResource("DoSplit"), Storyboard)
If board IsNot Nothing Then
board.Begin(Me, True)
Dim t As Thread
t = New Thread(AddressOf Me.WaitToHidePanel)
t.SetApartmentState(ApartmentState.STA)
t.Start()
End If
당신의 스레드에 안전한 대표단 및 기능고 있습니다.그것은 추한 해킹에 내 의견만,그것은 작품이다.
다른 팁
일반적으로 제어하기 위해서는 애니메이션을하는 동안 타임라인을 사용하는 것이"키프레임".키프레임 애니메이션을 정의할 수 있는 특정한 속성 값은 애니메이션은 특정 시간에.에 WPF 모든 애니메이션에 해당하는 키 프레임에 애니메이션,다음과 같'doubleanimation 을'은'DoubleAnimationUsingKeyFrames'.
나는 생각하지 않을 시작하는 것이 가능하다 새로운 스토리보드 내에서 애니메이션이다.그러나 당신은 동일한 결과를 얻을 수 있습함으로써 모두의 스토리보드와 같은 타임라인에 시작 스토리보드(2)특정 지연기간에 따라 스토리보드(1).다음과 같습니다.
<StackPanel>
<Rectangle Name="recProgressBar"
Fill="Orange"
Width="1"
Height="25"
Margin="20"
HorizontalAlignment="Left" />
<Button Content="Start Animation"
Width="150"
Height="25">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="recProgressBar"
Storyboard.TargetProperty="Width"
From="0"
To="250"
Duration="0:0:2" />
<Storyboard BeginTime="0:0:3">
<ColorAnimation Storyboard.TargetName="recProgressBar"
Storyboard.TargetProperty="Fill.Color"
To="DarkGreen"
Duration="0:0:1" />
</Storyboard>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
</StackPanel>
여기에는 색상 애니메이션이 시작됩 1 초 후에 너비 애니메이션을 완료했습니다.그것은 가치가 있을 수 있습니다.
감사 Megakemp,그 무엇이었을 두려워하지 않습니다.내가 하고 싶지 않았을 관리하는 두 개의 복사본에서 스토리보드 XAML.가 있는 경우를 추가하 제어 및 관리를 통해 스토리보드(1)나는 것을 기억해야를 복사하고 붙여넣의 변경 다른 스토리보드(2).나는 그가 농구를 통해 이동 될 때까지는 기능을 제공하는 내가 찾고 있습니다.
지금 나는 생각하의 또 다른 아이디어를 하려고 하지만 할 수 없을 얻을 수 있습니다.이는 내 생각이 아래,내가 그것을 잘 설명할 수 있는 코드에서..이 아래 코드를 컴파일되지 않을,그것을 얻을 내립니다.
Dim board As Storyboard = New Storyboard
board = DirectCast(TryFindResource("Animation1"), Storyboard)
If board IsNot Nothing Then
board.Begin(Me)
While board.GetCurrentState(Me) = ClockState.Active
'Wait until Animation1 ends
End While
'Start Animation2
board = DirectCast(TryFindResource("Animation2"), Storyboard)
If board IsNot Nothing Then
board.Begin(Me)
End If
End If
당신의 도움을 위한 감사합니다..과하는 경우 다른 사람은 다른 답변 또는 통찰력을 더 망설이지 않는 게시물에,나는 포기하지 않습이 아이디어 아직 완전히.