7

サーバーでホストされているイメージを C#/XAML WinRT アプリで使用しています。その画像がダウンロードされたら、それをフェードインさせたいと思っFadeInThemeAnimationています。でも、のように使いたいEntranceThemeTransition。これを行う方法はありますか?もしそうなら、どのように?

4

3 に答える 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 に答える