0

キャンバス内に画像があります。UserControl が読み込まれると、画像が上に移動します。

<Canvas x:Name="cnvMain"  Width="300" VerticalAlignment="Center" Height="200" SnapsToDevicePixels="True">
    <Image x:Name="Image1"    Width="200"  Stretch="None" Canvas.Bottom="0"  Source="ImageGallery/Desert.jpg" ></Image>
</Canvas>

私はダブルアニメーションを使用しました。

    DoubleAnimation _Animation;
    private Storyboard _StoryBoard;

    private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {

        _Animation = new DoubleAnimation();
        _Animation.From = -Image1.ActualHeight;
        _Animation.To = cnvMain.ActualHeight;
        _Animation.RepeatBehavior = RepeatBehavior.Forever;
        _Animation.Duration = new Duration(TimeSpan.Parse("0:0:10"));
        _Animation.FillBehavior = FillBehavior.Stop;
        Storyboard.SetTarget(_Animation, Image1);
        Storyboard.SetTargetProperty(_Animation, new PropertyPath(Canvas.BottomProperty));
        _StoryBoard = new Storyboard();
        _StoryBoard.Children.Add(_Animation);
        _StoryBoard.Begin();
    }

このコードはうまく機能します。私の問題は、キャンバスがフレームのように画像の周りにオーバーレイされなかったことです(画像サイズはキャンバスよりも大きく、キャンバス内の画像の領域を表示したい)。キャンバスをグリッドに変更すると、画像の外側にオーバーレイされますが、アニメーションは機能しませんでした。

4

1 に答える 1

1

Canvasで試して使用してください:ClipToBounds="True"

于 2012-08-21T17:01:38.663 に答える