0

私の WP8 アプリケーションでは を使用してProgressIndicatorおり、非表示にする前にフェードアウトさせたいと考えています。それを行う方法を説明しているドキュメントが見つかりません。唯一の公開されたプロパティはProgressIndicatorIsVisibleアニメーションを提供しないものです。

しかし、一部のアプリケーションでは、プログレス バーがフェードアウトするのがはっきりとわかります。
では、どうすればフェードアウトできるのでしょうか。

4

2 に答える 2

2

残念ながら、WP7/WP8 のシェル コンポーネントをデフォルトのアニメーション以外にアニメーション化することはできません。ProgressIndicator と SystemTray は (ApplicationBar、MessageBox などと共に) シェル UI の一部であるため、組み込みのトランジションで解決する必要があります。

これが本当に問題になる場合は、管理された ProgressBar をアプリの<Frame />テンプレートの一部として使用して、ProgressIndicator エクスペリエンスをいつでも再作成できます。

于 2013-01-27T20:12:48.133 に答える
1

msdnの DoubleAnimation クラスを見てください。

<StackPanel>
    <StackPanel.Resources>
        <Storyboard x:Name="myStoryboard">
            <DoubleAnimation
          Storyboard.TargetName="MyProgressBar"
          Storyboard.TargetProperty="Opacity"
          From="1.0" To="0.0" Duration="0:0:5" 
          Completed="DisableMyProgressBar"/>
        </Storyboard>
    </StackPanel.Resources>

    <ProgressBar x:Name="MyProgressBar"  />

</StackPanel>

コード ビハインドでは、処理が完了したときにアニメーションをトリガーします。

private void StopProgressBar()
{
     myStoryboard.Begin();
}

プログレス バーを無効にし、フェードアウト後に不透明度をリセットする必要があるため、Storyboard の Completed イベントを使用してこれらのプロパティをリセットします。

msdn で Timeline.Completed

private void DisableMyProgressBar(object sender, EventArgs e)
{
    MyProgressBar.IsEnabled = false;
    MyProgressBar.Opacity = 1;
}
于 2013-01-27T18:01:14.780 に答える