0

要素の現在の色を取得することは可能ですか?

<UserControl.Resources>
<Storyboard x:Name="SBFade">
    <ColorAnimationUsingKeyFrames x:Name="keyframes" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="LayoutRoot">
        <EasingColorKeyFrame KeyTime="0" Value="#FF681D1D"/>
        <EasingColorKeyFrame KeyTime="0:0:0.6" Value="Gray"/>
    </ColorAnimationUsingKeyFrames>
</Storyboard>
</UserControl.Resources>

<Grid x:Name="LayoutRoot" Background="#808080" >.....</Grid>

値が#FF681D1Dの行で、グリッドの現在の背景色を取得したいと思います(この色は実行時に変更される可能性があります。助けてくれてありがとう!

4

1 に答える 1

0

非キーフレームアニメーションでは、「From」値を省略すると、必要な処理が実行されます。

何かのようなもの:

<Storyboard x:Name="SBFade">
    <ColorAnimation x:Name="keyframes" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="LayoutRoot" To="Gray" Duration="0:0:0.6" />
</Storyboard>

または、キーフレームを使用する場合、初期/最初のキーフレームを省略しても同じ効果が得られます。DiscreteColorKeyFrame(補間なしで指定された時間に指定された色にジャンプする)以外のものを使用すると、色間が補間されます。

<Storyboard x:Name="SBFade">
    <ColorAnimationUsingKeyFrames x:Name="keyframes" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="LayoutRoot">
        <EasingColorKeyFrame KeyTime="0:0:0.6" Value="Gray"/>
    </ColorAnimationUsingKeyFrames>
</Storyboard>

これらは、msdnの例であるColorAnimationおよびColorAnimationUsingKeyFrames(xamlの例までスクロールダウン)と非常によく似ています。

リバースアニメーション(グレーから任意の色へのフェード解除)を作成する場合は、ビューモデルで目的の色を維持し、Toプロパティ(キーフレーム以外のアニメーションの場合)またはValueプロパティ(の場合)をバインドします。キーフレームアニメーションの)ビューモデルのそのプロパティに。

于 2013-01-10T15:48:15.023 に答える