मेरे पास निम्न शैली का उपयोग कर सीमा के साथ एक WPF प्रोजेक्ट है। यह योजना है कि जब माउस सीमा पर चलता है तो चमक प्रभाव को फीका करने के लिए, और जब यह छोड़ देता है तो फीका होता है।DropShadowEffect की अस्पष्टता को कैसे एनिमेट करें?
<Style x:Key="BorderGlow" TargetType="Border">
<Style.Resources>
<Storyboard x:Key="GlowOn">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(DropShadowEffect.Opacity)">
<SplineDoubleKeyFrame KeyTime="0:0:0.3" Value="1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="GlowOff">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(DropShadowEffect.Opacity)">
<SplineDoubleKeyFrame KeyTime="0:0:0.3" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Style.Resources>
<Setter Property="CornerRadius" Value="6,1,6,1" />
<Setter Property="BorderBrush" Value="{StaticResource SelectedBorder}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Background" Value="{StaticResource DeselectedBackground}" />
<Setter Property="RenderTransformOrigin" Value="0.5,0.5" />
<Setter Property="TextBlock.Foreground" Value="{StaticResource SelectedForeground}" />
<Setter Property="RenderTransform">
<Setter.Value>
<RotateTransform Angle="90"/>
</Setter.Value>
</Setter>
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect ShadowDepth="0" BlurRadius="8" Color="#FFB0E9EF"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource GlowOn}"/>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource GlowOff}"/>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
समस्या यह है कि कुछ भी नहीं होता! एनीमेशन काम करता है अगर मैं स्टोरीबोर्ड टार्गेटप्रोपर्टी में "ड्रॉपशैडोफेक्ट" को "UIElement" में बदलता हूं, लेकिन यह पूरे नियंत्रण को फीका करता है।
मैं DropShadowEffect को कैसे फीका कर सकता हूं?
मैं एक InvalidOperationException मिलता है क्योंकि प्रभाव 'नहीं करता है एक अस्पष्टता संपत्ति नहीं है। प्रभाव का मूल्य DropShadowEffect है जिसमें अस्पष्टता संपत्ति है जिसे मैं लक्षित करने की कोशिश कर रहा हूं, लेकिन जैसा कि आप इंगित करते हैं कि मेरा एक्सएएमएल गलत है। मैंने x को सेट करने का प्रयास किया है: DropShadowEffect पर नाम लेकिन आप स्टाइल में TargetName का उपयोग नहीं कर सकते हैं। स्टोरीबोर्ड में इन ब्रैकेट के उपयोग के बारे में एमएसडीएन दस्तावेज में एक छेद है, लेकिन मैंने इसे PropertyPath की सहायता से ट्रैक किया। हालांकि मैं अभी भी समस्या का समाधान नहीं कर सकता। मुझे लगता है कि मुझे DropShadowEffect पर प्रभाव डालना होगा लेकिन यह XAML में संभव नहीं लगता है। कोई अन्य विचार? – Zodman
मैंने आपके द्वारा प्रदत्त वाक्यविन्यास का उपयोग करके काम कर रहे कोड को प्राप्त करने में कामयाब रहा, मैंने इसे एक छीन लिया गया नमूना ऐप में किया। मैं जो भी इस्तेमाल करता हूं उसे पोस्ट करूंगा और आप उस से वापस काम कर सकते हैं ... –
नोट मैंने उन सेटर्स को हटा दिया है जो स्थिर संसाधनों का उपयोग करते हैं जिन्हें आपने प्रदान नहीं किया है, लेकिन यह प्रदर्शन को प्रभावित नहीं करेगा। और मुझे लगता है कि आप अपनी शैली के भीतर TextBlock.Foreground संपत्ति सेट करने की कोशिश कर रहे हैं जो काम नहीं करेगा। –