【解決方法】doubleanimation WPF でリソース カラーを使用するにはどうすればよいですか?

プログラミングQA


こんにちは皆さん。
MouseEnter と MouseLeave 中に ToggleButton をアニメーション化してみました。
以下のコードは、カラーコードを直接使用すると機能します。
しかし、それをリソースに参照すると、機能せず、例外が発生します。

スローされる例外:
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

あなたのリソースは Color ではなく SolidColorBrush であり、From が期待しているものです。

リソースは次のとおりであるべきだと思います。

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

コメント

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