كيف يمكنني استخدام ألوان الموارد في doubleanimation WPF؟


مرحبا يا رفاق.
لقد حاولت تحريك ToggleButton أثناء MouseEnter وMouseLeave.
يعمل الكود أدناه عندما أستخدم رمز اللون مباشرةً.
لكن إذا قمت بإحالته إلى أحد الموارد، فإنه لا يعمل ويعطيني استثناءً.

تم طرح الاستثناء:
System.Windows.Markup.XamlParseException: ”ألقى تعيين الخاصية ‘System.Windows.Media.Animation.ColorAnimation.From’ استثناءً.’ رقم السطر ‘137’ وموضع السطر ’46’.’
الاستثناء الداخلي: ArgumentException: ‘#FF2E353F’ ليس قيمة صالحة للخاصية ‘From’.

هل من مساعدة من فضلك؟

ما حاولت:

هذا يعمل بشكل جيد.

XML
<BeginStoryboard x:Name="BeginStoryboardNameR">
    <Storyboard>
        <ColorAnimation From="#015CBF" To="#007AFF" 
                        Storyboard.TargetName="templateRoot" 
                        Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)"
                        FillBehavior="HoldEnd"
                        Duration="0:0:.2"/>
    </Storyboard>
</BeginStoryboard>

هذا الرمز لا يعمل ويعطيني استثناء.

XML
<SolidColorBrush x:Key="MyBox.TButton.Bg" Color="#FF2E353F"/>

<BeginStoryboard x:Name="BeginStoryboardNameR">
    <Storyboard>
        <ColorAnimation From="{StaticResource MyBox.TButton.Bg}" To="#007AFF"
                        Storyboard.TargetName="templateRoot"
                        Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)"
                        FillBehavior="HoldEnd"
                        Duration="0:0:.2"/>
    </Storyboard>
</BeginStoryboard>

الحل 1

المورد الخاص بك هو SolidColorBrush، وليس لونًا، وهو ما يتوقعه From.

أعتقد أن الموارد الخاصة بك يجب أن تكون:

XAML
<Color x:Key="MyBox.TButton.Bg">#FF2E353F</Color>

コメント

タイトルとURLをコピーしました