6

要素を含むグリッドがあります。それらの要素をすべて移動したいので、グリッドだけをまとめて移動することはできませんか? これは私が見ているものからは何の効果もありません.ScaleXなども試しました.

<Grid x:Name="HancockDetails" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100" Grid.Column="1" RenderTransformOrigin="0.5,0.5">                       
   <Rectangle HorizontalAlignment="Left" Height="100" Stroke="Black" VerticalAlignment="Top" Width="100"/>
    <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Foreground="#FFF30000"/>               
            </Grid>
          </Grid>
      </s:ScatterViewItem>

私の機能:

Storyboard sb = new Storyboard();

DoubleAnimation slide = new DoubleAnimation();
slide.To = 3000.0;
slide.From = 0;
slide.Duration = new Duration(TimeSpan.FromMilliseconds(40.0));

// Set the target of the animation
Storyboard.SetTarget(slide,HancockDetails);
Storyboard.SetTargetProperty(slide, new PropertyPath("RenderTransform.(ScaleTransform.ScaleY)"));

// Kick the animation off
sb.Children.Add(slide);
sb.Begin();
4

2 に答える 2

7

最初にマークアップに を追加する必要がありRenderTransformます。そうしないと、ランタイムはそれを見つけることができません。

<Grid x:Name="HancockDetails" ...>  
    <Grid.RenderTransform>
        <TranslateTransform />
    </Grid.RenderTransform>
</Grid>

目的はグリッドをスライドさせることであり、サイズを変更することではないため、 ではTranslateTransformなくを使用したいと思いますか?ScaleTransform

Storyboard.SetTargetProperty(slide, 
    new PropertyPath("RenderTransform.(TranslateTransform.X)"));
于 2013-07-19T19:00:19.190 に答える
5

手でストーリーボードを作成しようとする代わりに、Expression Blendを使用する方がはるかに簡単です。Visual Studioを補完する無料のデザイン ツールです。あなたが説明しているストーリーボードは、そこに作成するのに 30 秒もかかり、コードはありません。次に、実行したいときは、StoryBoardName.Begin()

簡単ですよね?ここにリソースがあります。http://msdn.microsoft.com/en-us/expression/cc197141.aspx

于 2013-07-19T18:57:53.807 に答える