नोट मैं (एक स्वीकृत जवाब के साथ) संबंधित सवाल पूछा है: How to combine DataTrigger and Trigger?डेटा ट्रिगर और इवेंट ट्रिगर को कैसे गठबंधन करें?
मुझे लगता है कि मैं एक EventTrigger
गठबंधन करने के लिए की जरूरत है और एक DataTrigger
प्राप्त करने के लिए मैं क्या कर रहा हूँ के बाद:
- जब मेरी सूची बॉक्स में कोई आइटम दिखाई देता है, तो उसे कुछ क्षणों के लिए फ्लैश करना चाहिए
- यदि आइटम 'गंभीर' है तो इसे पर हाइलाइट किया जाना चाहिए
वर्तमान में मैं एक DataTemplate है कि इस तरह दिखता है:
<DataTemplate DataType="{x:Type Notifications:NotificationViewModel}">
<Grid HorizontalAlignment="Stretch">
<Border Name="Background" CornerRadius="8" Background="#80c0c0c0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<Border Name="Highlight" CornerRadius="8" Background="Red" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<!-- snip actual visual stuff -->
<Grid.Triggers>
<EventTrigger RoutedEvent="Grid.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation x:Name="LoadedAnimation"
Storyboard.TargetName="Highlight"
Storyboard.TargetProperty="Opacity"
From="0" To="1"
RepeatBehavior="5x"
Duration="0:00:0.2"
AutoReverse="True" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Grid.Triggers>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsCritical}" Value="True">
<Setter TargetName="LoadedAnimation" Property="RepeatBehavior" Value="5.5x" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
विचार है कि एक EventTrigger 0 और 1 के बीच Highlight
सीमा की अस्पष्टता एनिमेट होने और फिर से वापस बार बार जब आइटम पहले भरी हुई है, ड्राइंग है उपयोगकर्ता का ध्यान DataTrigger
एनिमेट करने के लिए समय की संख्या निर्धारित करता है। यदि दृश्य मॉडल रिपोर्ट करता है कि आइटम IsCritical
है तो एनीमेशन 5.5 गुना होता है (जैसे कि यह अस्पष्टता 1 पर समाप्त होता है), अन्यथा यह 5 गुना (अस्पष्टता 0 पर समाप्त होता है)
हालांकि उपर्युक्त XAML काम नहीं करता है डेटा ट्रिगर का सेटर विफल रहता है:
विज़ुअलट्री में नाम 'लोडेडएनीमेशन' नाम वाला बच्चा नहीं मिला।
पर्याप्त मेला। तो, एक कस्टम मान कनवर्टर का उपयोग करने या दृश्य मॉडल पर एनीमेशन गिनती डालने और इसके लिए बाध्यकारी, मेरे विकल्प क्या हैं? इस तरह
यह सहायक हो सकता है http://stackoverflow.com/questions/2764415/how-to-give-the-condition-for-eventtrigger –