0

簡単な質問ですが、Google で年齢を検索しています。私はストーリーボードを持っています:

<Storyboard x:Key="ViewLeftToRight" AccelerationRatio=".5" DecelerationRatio=".5">
    <DoubleAnimation Storyboard.TargetName="ReferenceInfo" Storyboard.TargetProperty="Margin" Duration="0:0:0.15" To="{Binding, Width},0,0,0"/>
</Storyboard>

うまくいきません。コントロールの幅を「左」マージンにバインドする方法があるかどうか疑問に思っていました。コンバーターを使用する必要がある場合、上記の例で XAML でどのように記述されるかを示していただけますか?

ありがとう!

4

1 に答える 1

2

Marginいいえ、対応する依存関係プロパティが定義されていないため、アニメーションを にバインドすることはできません。いくつかの選択肢がありますが、ここでは 2 つを示します。

  1. オブジェクトを Canvas に配置し、アニメーション化Canvas.LeftしてCanvas.Top
  2. オブジェクトにを定義し、そのとプロパティRenderTransformをアニメーション化します。XY

1)

<Canvas>
    <TextBlock Text="test" x:Name="ReferenceInfo" Canvas.Left="0" Canvas.Top="0" />
</Canvas>

ここで、ストーリーボードの短いターゲットは同じ elementですが、「(Canvas.Left)」のような括弧を使用して示す添付プロパティReferenceInfoをターゲットにしています。

<DoubleAnimation 
    Storyboard.TargetName="ReferenceInfo" 
    Storyboard.TargetProperty="(Canvas.Left)" Duration="0:0:0.15" 
    To="{Binding Width}"/>

2)

<TextBlock Text="test" x:Name="ReferenceInfo">
    <TextBlock.RenderTransform>
        <TranslateTransform x:Name="TranslateReferenceInfo" X="0" Y="0" />
    </TextBlock.RenderTransform>
</TextBlock>

アニメーションはそれTranslateTransform自体を名前で参照します。

<DoubleAnimation 
    Storyboard.TargetName="TranslateReferenceInfo" 
    Storyboard.TargetProperty="X" Duration="0:0:0.15" 
    To="{Binding Width}"/>
于 2012-11-29T07:17:18.330 に答える