1

W10 Mobile では、拡張スプラッシュスクリーンを作成できます。Template10 とそのガイドラインを使用して、拡張スプラッシュスクリーンを作成します。サイズの 3 つの画像があります: 620x3001240x6002480x1200px。拡張スプラッシュスクリーンは正常に機能していますが、画像を中央から下にアニメーション化したいと考えています。画像を設定するコードは次のとおりです。

SplashScreenImage.SetValue(Canvas.LeftProperty, SplashScreen.ImageLocation.X);
        SplashScreenImage.SetValue(Canvas.TopProperty, SplashScreen.ImageLocation.Y);

        if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
        {
            SplashScreenImage.Height = SplashScreen.ImageLocation.Height / ScaleFactor;
            SplashScreenImage.Width = SplashScreen.ImageLocation.Width / ScaleFactor;
        }
        else
        {
            SplashScreenImage.Height = SplashScreen.ImageLocation.Height;
            SplashScreenImage.Width = SplashScreen.ImageLocation.Width;
        }

高さは有効731ピクセル、幅は有効411ピクセル。しかし、画像は中央にあり、中央の画像のサイズを取得したいと思います。Windowsが何をするのか、そしてそれが画像をスケーリングするのかどうかはわかりません。

4

1 に答える 1

1

拡張スプラッシュスクリーンがロードされると、画像を中央から下にアニメーション化し始めます

これを行うには、ストーリー アニメーションを使用できます。たとえば、ここでは を使用DoubleAnimationUingKeyFramesしています。必要な適応アニメーションを選択できます。

Xaml コード

<StackPanel>
    <StackPanel.Resources>
        <Storyboard x:Name="storyboard">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="SplashScreenImage" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)"
                <LinearDoubleKeyFrame KeyTime="0:0:0" Value="50" />
                <LinearDoubleKeyFrame KeyTime="0:0:2" Value="120" />
                <LinearDoubleKeyFrame KeyTime="0:0:9" Value="400" />
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </StackPanel.Resources>
    <Canvas>
        <Image x:Name="SplashScreenImage"
               Loaded="SplashImage_Loaded"
               Source="Assets/foo600320.jpg">
            <Image.RenderTransform>
                <TranslateTransform />
            </Image.RenderTransform>
        </Image>              
    </Canvas>
</StackPanel>       

コード ビハインド、コードに追加storyboard.Begin();します。

  SplashScreenImage.SetValue(Canvas.TopProperty, SplashScreen.ImageLocation.Y);
  if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
  {
      SplashScreenImage.Height = SplashScreen.ImageLocation.Height / ScaleFactor;
      SplashScreenImage.Width = SplashScreen.ImageLocation.Width / ScaleFactor;
  }
  else
  {
      SplashScreenImage.Height = SplashScreen.ImageLocation.Height;
      SplashScreenImage.Width = SplashScreen.ImageLocation.Width;
  }
  storyboard.Begin();

このアニメーションでは、9 秒で画像を中央から下に移動できます。

アニメーションが完了したら、ログイン画面に移動します。

このために、Completed イベントを使用してログイン画面に移動できます。

storyboard.Completed += MyStoryboard_Completed;
private void MyStoryboard_Completed(object sender, object e)
{
    // Navigate to mainpage
    rootFrame.Navigate(typeof(MainPage));
    // Place the frame in the current Window
    Window.Current.Content = rootFrame;
}

参照できる完全なデモがアップロードされています。

于 2016-05-05T02:39:17.313 に答える