PDA

View Full Version : سوال: اجرای همزمان دو StoryBoard



water_lily_2012
شنبه 05 شهریور 1390, 18:18 عصر
سلام
من دو تا دکمه دارم و دو تا StoryBoard که با کلیک هر کدام از دکمه یکی از Storyها با کد نویسی اجرا میشود.
یعنی دو تا تابع دارم که دستورات را برای اجرا دارد.

حالا می خواهم با کلیک بر روی یک دکمه دیگر یعنی دکمه سوم هر دو تابع اجرای Storyها با هم اجرا شوند. من هر دو تابع را صدا زدم ولی فقط اولی اجرا میشه و دومی یا اجرا نمیشه یا گاهی نیمه کاره اجرا میشود.

باید چه کار کنم که هر دو Story با هم و همزمان اجرا شوند؟؟؟

water_lily_2012
دوشنبه 07 شهریور 1390, 00:54 صبح
کسی راهی نداره. لطفا کمک کنید.

afsaneh.asp
دوشنبه 07 شهریور 1390, 08:49 صبح
اگه دوتا storyboard با هم تضادي نداشته باشن،اجرا ميشن

مهدی فرزاد
دوشنبه 07 شهریور 1390, 13:39 عصر
سلام
فایلتون یا کد تون رو بگذارید

water_lily_2012
چهارشنبه 16 شهریور 1390, 12:19 عصر
کد کامل StoryBoard من این هست.
حالا لطفا کمک کنید.


#region StoryboardAction
private void LeftButtonTab_Click(object sender, RoutedEventArgs e)
{
if (this.LeftClicked == false)
{
System.Windows.Media.Animation.ThicknessAnimation OpenLeft = new ThicknessAnimation();
OpenLeft.Completed += new EventHandler(OpenLeftTab_Completed);
OpenLeft.From = new Thickness(0, 0, this.TabControl.Margin.Right, 0);
OpenLeft.To = new Thickness(-166, 0, this.TabControl.Margin.Right, 0);
OpenLeft.Duration = new Duration(new TimeSpan(0, 0, 0, 0, 300));
this.TabControl.BeginAnimation(Grid.MarginProperty , OpenLeft);
Storyboard OpenLeftTab = FindResource("OpenLeftTab") as Storyboard;
OpenLeftTab.Begin();
}
else
{
System.Windows.Media.Animation.ThicknessAnimation CloseLeft = new ThicknessAnimation();
CloseLeft.Completed += new EventHandler(CloseLeftTab_Completed);
CloseLeft.From = new Thickness(-166, 0, this.TabControl.Margin.Right, 0);
CloseLeft.To = new Thickness(0, 0, this.TabControl.Margin.Right, 0);
CloseLeft.Duration = new Duration(new TimeSpan(0, 0, 0, 0, 300));
this.TabControl.BeginAnimation(Grid.MarginProperty , CloseLeft);
Storyboard CloseLeftTab = FindResource("CloseLeftTab") as Storyboard;
CloseLeftTab.Begin();
}
}

private void RightButtonTab_Click(object sender, RoutedEventArgs e)
{
if (this.RightClicked == false)
{
System.Windows.Media.Animation.ThicknessAnimation OpenRight = new ThicknessAnimation();
OpenRight.Completed += new EventHandler(OpenRightTab_Completed);
OpenRight.From = new Thickness(this.TabControl.Margin.Left, 0, 0, 0);
OpenRight.To = new Thickness(this.TabControl.Margin.Left, 0, -166, 0);
OpenRight.Duration = new Duration(new TimeSpan(0, 0, 0, 0, 300));
this.TabControl.BeginAnimation(Grid.MarginProperty , OpenRight);
Storyboard OpenRightTab = FindResource("OpenRightTab") as Storyboard;
OpenRightTab.Begin();
}
else
{
System.Windows.Media.Animation.ThicknessAnimation CloseRight = new ThicknessAnimation();
CloseRight.Completed += new EventHandler(CloseRightTab_Completed);
CloseRight.From = new Thickness(this.TabControl.Margin.Left, 0, -166, 0);
CloseRight.To = new Thickness(this.TabControl.Margin.Left, 0, 0, 0);
CloseRight.Duration = new Duration(new TimeSpan(0, 0, 0, 0, 300));
this.TabControl.BeginAnimation(Grid.MarginProperty , CloseRight);
Storyboard CloseRightTab = FindResource("CloseRightTab") as Storyboard;
CloseRightTab.Begin();
}

}

private void OpenLeftTab_Completed(object sender, EventArgs e)
{
this.LeftClicked = true;
}

private void OpenRightTab_Completed(object sender, EventArgs e)
{
this.RightClicked = true;
}

private void CloseLeftTab_Completed(object sender, EventArgs e)
{
this.LeftClicked = false;
}

private void CloseRightTab_Completed(object sender, EventArgs e)
{
this.RightClicked = false;
}
#endregion

water_lily_2012
چهارشنبه 16 شهریور 1390, 12:49 عصر
خیلی تلاش کردم ولی گویا توانایی اجرای دو StoryBoard به صورت همزمان وجود نداره.
البته اگر نباشه مهم نیست. یک StoryBoard درست می کنم که کار هر دو را انجام بده.

هاجر22
چهارشنبه 16 شهریور 1390, 17:17 عصر
می تونید به برنامه این دستور را بدهید که همزمان با آغاز یک استوری بورد استوری برد دوم هم اجرا (play) شود.

water_lily_2012
چهارشنبه 16 شهریور 1390, 22:42 عصر
مشکل حل شد. دو راه برای حل مشکل وجود داشت.
یکی استفاده از یک Story Board که کار هر دو را انجام دهد.
دوم دستکاری در همین دستورات خودم.