आप मिश्रण का उपयोग कर रहे हैं, आप VisualStateManager
के लिए मिश्रण के समर्थन का लाभ उठाना चाहिए। आपको बस इतना करना है कि ऑब्जेक्ट अपने विभिन्न राज्यों जैसे MouseOver
और Normal
और विभिन्न राज्यों के बीच संक्रमण कितने समय तक दिखता है, और दृश्य राज्य प्रबंधक राज्यों के बीच संक्रमण के बारे में बताता है।
किसी छवि में कोई दृश्यमान स्थिति नहीं है लेकिन आप Button
टेम्पलेट को संपादित कर सकते हैं और इसकी सामग्री को एक छवि बना सकते हैं और फिर बटन के लिए राज्यों को संपादित कर सकते हैं। मैंने यह किया और XAML तकनीक का प्रदर्शन करने को साफ कर दिया है:
<Grid>
<Grid.Resources>
<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Image x:Name="image" Height="100" Width="Auto" Source="http://thecybershadow.net/misc/stackoverflow.png" Margin="0,0,-25,0">
<Image.Effect>
<DropShadowEffect ShadowDepth="0"/>
</Image.Effect>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0:0:0.5"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Effect).(DropShadowEffect.ShadowDepth)" Storyboard.TargetName="image">
<EasingDoubleKeyFrame KeyTime="0" Value="15"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed"/>
<VisualState x:Name="Disabled"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Image>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
<Button Style="{StaticResource ButtonStyle1}"/>
</Grid>
ध्यान दें कि ब्लेंड आप के लिए यह सब करता है लेकिन XAML को समझने में मदद मिलेगी। यहाँ एक मिश्रण उन्मुख ट्यूटोरियल है:
स्रोत
2011-01-12 06:33:19
मैं अभिव्यक्ति मिश्रण का उपयोग नहीं करते हैं, लेकिन हो सकता है आप XAML सीधे पर काम करना चाहते हैं? किसी अन्य घटना द्वारा स्टोरीबोर्ड को रिवर्स करने के लिए, सबसे आसान तरीका है कि एनीमेशन को रिवर्स ऑर्डर में एनीमेशन कर रहा है और इसे उस ईवेंट पर टैग करें –
मैं ऐसा करने के बारे में सोच रहा था लेकिन मैं अभी तक एक और स्टोरीबोर्ड बनाने से बचने की कोशिश कर रहा था। इनपुट के लिए धन्यवाद। –
अब तक यदि एक ही घटना द्वारा "डू-एंड-रिवर्स" ट्रिगर किया जाता है, तो इसे आसानी से किया जा सकता है, लेकिन आपके मामले के लिए, यह 2 अलग-अलग ईवेंट है। अकेले xaml के माध्यम से एक सुविधाजनक तरीके से जानने में रुचि होगी। –