संपादित करें:मूल प्रश्न में मैंने सेटर्स कैसे काम करते हैं, इस बारे में कुछ गलत धारणाएं की हैं इसलिए मैंने इसे अधिक सटीक और उपयोगी होने के लिए संशोधित किया।क्या संपत्तियों के गुणों के लिए स्टाइल सेटर का उपयोग करने का कोई तरीका है?
यदि माउस आइटम पर नहीं है तो आइकन आधे पारदर्शी दिखाई देकर कुछ मेनू आइटम को और अधिक रोचक बनाने का प्रयास किया है। यदि माउस प्रवेश करता है, तो आइकन पूरी तरह से दिखाई देने के लिए एनिमेटेड होना चाहिए। एनिमेशन काम करते हैं, Storyboard.TargetProperty
आइकन की अस्पष्टता संपत्ति के लिए सीधी पहुँच की अनुमति देता है:
<Style x:Key="MenuItemMouseOverStyle" TargetType="MenuItem">
<Style.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Icon.Opacity">
<EasingDoubleKeyFrame KeyTime="0" Value="0.5"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Icon.Opacity">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0.5"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
तो मैं प्रारंभिक आइकन-अस्पष्टता के लिए एक सेटर इस्तेमाल करने की कोशिश कोड संकलन नहीं होगा:
<Setter Property="Icon.Opacity" Value="0.5"/>
संपादित करें: Setters तरह से मैं उन्हें उपयोग करने के लिए, आप गुण के गुणों (उत्तर देखें) उपयोग नहीं कर सकते करने की कोशिश की काम नहीं करते केवल एक चीज आप कर सकते हैं एक लक्ष्य वर्ग निर्दिष्ट है अगर शैली का लक्ष्य प्रकार सेट नहीं किया गया है, तो निम्न शैलियों बराबर होना चाहिए:
<Style x:Key="Style1" TargetType="Image">
<Setter Property="Opacity" Value="0.5"/>
</Style>
<Style x:Key="Style2">
<Setter Property="Image.Opacity" Value="0.5"/>
</Style>
तो मेरे सवाल है, अगर वहाँ के लिए एक रास्ता है किसी भी तरह से एक सेटटर के साथ काम करते हैं।
आपका प्रस्तावित समाधान काम करता है लेकिन एकल कीफ्रेम वर्कअराउंड की तुलना में दर्द का और भी अधिक है क्योंकि सेटर को समान शैली परिभाषा में होना चाहिए क्योंकि यह एनिमेशन से संबंधित है। खैर, मुझे किसी भी अच्छे समाधान की उम्मीद नहीं थी क्योंकि पूरे सेटर और ट्रिगर व्यवसाय थोड़ा सीमित है (उदाहरण के लिए EventTriggers केवल स्टोरीबोर्ड के साथ काम करते हैं और सरल सेटर्स नहीं) वैसे भी धन्यवाद। –
@ एचबी: हाँ मैं मानता हूं, जिस समाधान का आप पहले से उपयोग कर रहे हैं वह बेहतर है इसलिए बस इसका उपयोग जारी रखें :) यदि संसाधन एक डीपी था तो आप इसे अपने मेनूइटम शैली में जोड़ सकते थे, लेकिन ऐसा नहीं है कि यह –
नहीं है काफी समझते हैं कि आपका क्या मतलब है, संसाधनों को डीपी क्यों होना चाहिए? शैली में छवि शैली को एम्बेड करना। स्रोत काम करता है ... –