...동시 스토리 보드 내가 생각할 수있는 모든 곳에서 보았다,하지만이에 대한 답을 찾을 수없는 7
나는 윈도우 폰 7 (XAML을위한 템플릿 스토리 보드의 종류를 만들고 싶어 및 C#)을 선택한 다음 해당 스토리 보드를 사용하여 여러 개체에 동일한 방식으로 애니메이션을 적용 할 수 있습니다. (즉, 동시에 모든 객체를 90도 회전) 어떤 아이디어입니까?
동적으로 완료되어야합니다. 그 말은 프로그램 중에 여러 다른 스토리 보드에 서로 다른 객체를 지정하려는 것이므로 정적 일 수는 없습니다.
내가 직면 한 주요 문제는 스토리 보드를 다시 사용하기 전에 중지해야하므로 동시에 실행할 수 없다는 점입니다. 그러나 스토리 보드의 임시 복사본을 만들면 동시에 모든 것을 실행할 수 있다고 생각했습니다. 가지고 계신 아이디어를 알려주십시오. 미리 감사드립니다!
나는 같은 그리드 내 개체 (사각형) 초기화 :
이 순간<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Rectangle Name="rec1" Height="80" Width="10" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,30,140,0">
<Rectangle.RenderTransform>
<RotateTransform x:Name="rec1Transform" Angle="0" CenterX="5" CenterY="-10" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Name="rec2" Height="10" Width="80" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,55,0">
.
.
.
</Rectangle>
</Grid>
, 내가 몇 번을 사용하려면 4 일반적으로 스토리 보드를 가지고 있고, 나는 버튼의 시리즈를 사용하고 있습니다 모든 애니메이션을 모방합니다. 예를 들면 :
내 스토리 보드
private void rotate1(object parameter, object secondParameter, String Target)
{
oneTwo.Stop();
oneTwo.Children[0].SetValue(Storyboard.TargetNameProperty, Target);
oneTwo.Begin();
}
private void rotate2(object parameter, object secondParameter, String Target)
{
twoThree.Stop();
twoThree.Children[0].SetValue(Storyboard.TargetNameProperty, Target);
twoThree.Begin();
}
private void rotate1Inverse(object parameter, object secondParameter, string Target)
{
twoOne.Stop();
twoOne.Children[0].SetValue(Storyboard.TargetNameProperty, Target);
twoOne.Begin();
}
private void rotate2Inverse(object parameter, object secondParameter, string Target)
{
threeTwo.Stop();
threeTwo.Children[0].SetValue(Storyboard.TargetNameProperty, Target.ToString());
threeTwo.Begin();
}
내 시뮬레이션 버튼 문제는 내가에 20 개의 사각형에서 동시에 이러한 4 가지 기본 스토리 보드를 사용하고자하는 것입니다
//Rotate Buttons
private void button_Click1(object sender, RoutedEventArgs e)
{
rec1Transform.CenterY = -10;
rotate2(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec1Transform");
}
private void button_Click2(object sender, RoutedEventArgs e)
{
rec2Transform.CenterX = -10;
rotate1(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec2Transform");
}
private void button_Click3(object sender, RoutedEventArgs e)
{
rec3Transform.CenterY = -10;
rotate1(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec3Transform");
}
private void button_Click4(object sender, RoutedEventArgs e)
{
rec4Transform.CenterX = -10;
rotate2(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec4Transform");
}
private void button_Click5(object sender, RoutedEventArgs e)
{
rec5Transform.CenterY = -10;
rotate2(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec5Transform");
}
private void button_Click6(object sender, RoutedEventArgs e)
{
rec6Transform.CenterX = -10;
rotate2(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec6Transform");
}
private void button_Click7(object sender, RoutedEventArgs e)
{
rec7Transform.CenterY = -10;
rotate1(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec7Transform");
}
//Inverse Rotate Buttons
private void button_Click1_Inverse(object sender, RoutedEventArgs e)
{
rec1Transform.CenterY = 90;
rotate1Inverse(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec1Transform");
}
private void button_Click2_Inverse(object sender, RoutedEventArgs e)
{
rec2Transform.CenterX = 90;
rotate2Inverse(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec2Transform");
}
private void button_Click3_Inverse(object sender, RoutedEventArgs e)
{
rec3Transform.CenterY = 90;
rotate2Inverse(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec3Transform");
}
private void button_Click4_Inverse(object sender, RoutedEventArgs e)
{
rec4Transform.CenterX = 90;
rotate1Inverse(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec4Transform");
}
private void button_Click5_Inverse(object sender, RoutedEventArgs e)
{
rec5Transform.CenterY = 90;
rotate1Inverse(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec5Transform");
}
private void button_Click6_Inverse(object sender, RoutedEventArgs e)
{
rec6Transform.CenterX = 90;
rotate1Inverse(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec6Transform");
}
private void button_Click7_Inverse(object sender, RoutedEventArgs e)
{
rec7Transform.CenterY = 90;
rotate2Inverse(RotateTransform.AngleProperty, PlaneProjection.RotationZProperty, "rec7Transform");
}
한 번에 20 개의 모든 직사각형에 애니메이션을 적용합니다. 그러나 각 직사각형에 적용하려는 스토리 보드가 매초마다 변경되기 때문에 각 사각형에 정적 스토리 보드가 할당되는 것을 원하지 않습니다. 동시에 4 개의 스토리 보드를 모두 사용할 것입니다. (즉, 직사각형 중 3 개는 "oneTwo"를 사용하고, 직사각형 중 5 개는 "twoThree", 직사각형 중 8 개는 "oneOw", 직사각형 중 2 개는 "threeTwo"를 사용합니다.
말이된다. 이 프로그램은 많은 사각형을 동시에 애니메이트하는 데에만 기반을두고 있으며, 도움이나 제안을 크게 주시면 감사하겠습니다.
레이아웃에있는 모든 개체를 어떻게 표시합니까? 적절한 순서로 목록이나 격자 또는 부적절한 순서로 이미지를 스택 패널에 바인딩하고 애니메이션을 적용하려는 경우 –
위 사각형에 대한 코드를 게시했지만 어떻게하면 전체를 애니메이션으로 만들 수 있습니까? 같은 시간에 스택 패널의 객체? – Jason
죄송합니다. 나는 바보 같은 존재 여야합니다. 그러나 나는 아직도 이것을 이해할 수 없습니다. 누군가 제발 도와 줄 수 있니? – Jason