PDA

View Full Version : سوال: چطور میتونم برای اجرا شدن Storyboard شرط بذارم ؟



idxxbi
دوشنبه 22 فروردین 1390, 21:22 عصر
سلام
یه مشکلی دارم می خوام یه Storyboard رو فقط وقتی که توی یه State خاصی هستم اجرا بشه ! ؟
:متفکر:
(چطور میتونم برای اجرا شدن Storyboard شرط بذارم ؟ )

با تشکر

مهدی فرزاد
سه شنبه 23 فروردین 1390, 00:14 صبح
سلام
سوال شما دو منظور رو میرسونه
برای شرط گذاشتن
شما میتونید برای در Event مربوط در کد C# برنامه StoryBoard رو اجرا کنید
مثلا شما StoryBoard با نام GheymatUnAction در کد Xaml دارید و حالا میخواید با کلیک کردن روی دکمه اگر مقدار bolBackClick برابر True بود اجرا بشه پس در ٍEvent کلیک دکمه مربوطه مینویسد
if (this.bolBackClick == true)
{
System.Windows.Media.Animation.Storyboard gheymatUnAction = (System.Windows.Media.Animation.Storyboard)(FindRe source("GheymatUnAction"));
BeginStoryboard(gheymatUnAction);
}

اما اگر میخواید StoryBoard مثلا فقط برای Click دکمه اتفاق بیافته و شرطی نداشته باشه
<Window.Triggers>
<EventTrigger RoutedEvent="ButtonBase.Click" SourceName="btnSabt">
<BeginStoryboard x:Name="GheymatUnAction_BeginStoryboard" Storyboard="{StaticResource GheymatUnAction}"/>
</EventTrigger>
</Window.Triggers>


و به این شکل هم میشه مثلا برای State مربوط یه IsMouseOver تعریف کرد
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver">
<Storyboard>
<ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="Chrome">
<EasingThicknessKeyFrame KeyTime="0:0:0.2" Value="-5"/>
</ThicknessAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed"/>
<VisualState x:Name="Disabled"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
لطفا در پست های آینده عنوان مناسب و به شکل فارسی برای تاپیک خود انتخاب کنید در غیر این صورت تاپیک شما حذف خواهد شد من برای شما این دفعه اصلاح کردم