サーバーでホストされているイメージを C#/XAML WinRT アプリで使用しています。その画像がダウンロードされたら、それをフェードインさせたいと思っFadeInThemeAnimation
ています。でも、のように使いたいEntranceThemeTransition
。これを行う方法はありますか?もしそうなら、どのように?
質問する
6149 次
3 に答える
11
私は同じ問題に遭遇しましたが、解決策を見つけました。それを共有することはまだ役立つかもしれないと思いました.
どうやらFadeInThemeAnimation
これは特別な種類のアニメーションで、ご想像のとおり Opacity と Visibility では機能せず、アイテムの RenderTransform で機能します。でアイテムを最初にフェードアウトするときにのみ機能させることができましたFadeOutThemeAnimation
。
しかし、ここに回避策があります。XAML で、次のように、ストーリーボードをイメージのコンテナーのリソースに追加します。
<Grid>
<Grid.Resources>
<Storyboard x:Name="ImageFadeInStoryboard">
<DoubleAnimation From="0" To="1" Storyboard.TargetName="yourImage" Storyboard.TargetProperty="Opacity" Duration="0:0:0.6" />
</Storyboard>
</Grid.Resources>
<Image x:Name="yourImage" Source="{Binding ...}"/>
...
次に、画像のImageOpened
イベントにハンドラーを追加します。
<Image x:Name="yourImage" Source="{Binding ...}" ImageOpened="OnImageOpened"/>
コード ビハインドでは次のようになります。
private void OnImageOpened(object sender, RoutedEventArgs e)
{
ImageFadeInStoryboard.Begin();
}
それが役立つことを願っています:)
于 2012-09-13T14:25:24.563 に答える
0
これは解決策ではありませんが、お役に立てば幸いです。
XAML では、次のようなものを使用します。
<StackPanel>
<StackPanel.Resources>
<Storyboard x:Name="EnterStoryboard">
<FadeOutThemeAnimation Storyboard.TargetName="MyImage" />
</Storyboard>
<Storyboard x:Name="ExitStoryboard">
<FadeInThemeAnimation Storyboard.TargetName="MyImage" />
</Storyboard>
</StackPanel.Resources>
<Image x:Name="MyImage"
PointerEntered="MyImage_PointerEntered"
PointerExited="MyImage_PointerExited"
Fill="Blue" Width="200" Height="300" />
</StackPanel>
そしてコードで:
private void MyImage_PointerEntered(object sender, PointerRoutedEventArgs e)
{
EnterStoryboard.Begin();
}
private void MyImage_PointerExited(object sender, PointerRoutedEventArgs e)
{
ExitStoryboard.Begin();
}
于 2018-09-23T06:25:52.787 に答える