Storyboardクラスを使用してコードからアニメーションを作成しようとしています。 ThicknessAnimationクラスはありません。そして、私もBlendを使ってストーリーボードを作ろうとしましたが、そこではうまくいきません。新しい値に直接ジャンプするだけで、滑らかなアニメーションはありません。メトロスタイルのアプリでMarginプロパティをアニメートする方法はありますか
更新:私はTranslateX変換を使ってみました。しかし、私がイメージ上でそれを使用すると、イメージはクリップされます。 私がしようとしているのは小さなグリッド内で大きな画像をアニメートすることです。そのため、ZuneとWindows Phone Galleryのような効果があります。画像は私がアニメーションを開始開いたら、これは私のコードです:
private void Image_ImageOpened_1(object sender, RoutedEventArgs e)
{
var img = sender as Image;
Storyboard sb = new Storyboard();
var doubleAnimationx = new DoubleAnimation() { To = -100, SpeedRatio = 0.1, From = 0 };
Storyboard.SetTarget(doubleAnimationx, img);
Storyboard.SetTargetProperty(doubleAnimationx, "(UIElement.RenderTransform).(CompositeTransform.TranslateX)");
sb.Children.Add(doubleAnimationx);
sb.Begin();
}
XAML:
<Grid IsSwipeEnabled="True" ItemsSource="{Binding Source={StaticResource cvs1}}" ItemClick="ItemsGridView_ItemClick_1"
x:Name="ItemsGridView" Margin="50,20,116,46" SelectionMode="None" IsItemClickEnabled="True"
AutomationProperties.AutomationId="ItemsGridView"
AutomationProperties.Name="Grouped Items">
<Grid.ItemTemplate>
<DataTemplate>
<Grid Height="250" VariableSizedWrapGrid.ColumnSpan="{Binding ColumnSpan}" Margin="2">
<Image ImageOpened="Image_ImageOpened_1" Stretch="UniformToFill" Source="{Binding ImageHQ}" >
<Image.RenderTransform>
<CompositeTransform />
</Image.RenderTransform>
</Image>
<StackPanel VerticalAlignment="Bottom" Background="#AA000000">
<TextBlock Margin="5,5,5,0" FontSize="26" Text="{Binding Name,Mode=OneWay}" FontFamily="Arial Black" />
<TextBlock Margin="5,0,5,5" FontSize="24" Text="{Binding Section,Mode=OneWay}" Foreground="{Binding SectionColor,Mode=OneWay}" />
</StackPanel>
</Grid>
</DataTemplate>
</Grid.ItemTemplate>
</Grid>
もう一度私の質問を確認してください、私はいくつかの詳細を追加しました。ありがとう:) – Ateik
@ user836252なぜ画像をスタックパネルの中に入れてパネルを移動させないのですか? –
まだ、画像がトリミングされます。 : – Ateik