2016-06-01 1 views
0

私はExtendedSplashScreenを追加して私のUWPアプリケーションを達成しようとしています。 UWPでは、SplashScreenは特定のディメンションを持つ必要があり、ページ中央のSplashRectに追加する必要があります。 私が欲しい:ExtendedSplashScreenカスタムサイズとアニメーションC#UWP

  1. スプラッシュ
  2. はお互いの後に異なる画像を表示するアニメーションを作成します(異なる画面サイズ用)すべての画面サイズを取ります。

これは達成できますか? UWPの設計ガイドラインで許可されていますか?これを達成する助け?

+0

それ[ショット](https://code.msdn.microsoft.com/Splash-Screen-in-Universal-42c0b57a/sourcecode?fileId=146755&pathId=1712287960)与え、ときに背中に来ますあなたが最初に試した後に特定の問題にぶつかる。 –

+0

"拡張スプラッシュ画面を使用して複数の異なるスプラッシュ画面イメージを表示すると、この目的が気にならず、ユーザーに不快感を与えたり混乱させる可能性があります。 - [スプラッシュ画面のガイドライン](https://msdn.microsoft.com/library/windows/apps/hh465338.aspx) –

答えて

0

これを達成できますか?

はい、要件を満たすために完成したデモをアップロードしました。テストのためにCSplashScreenソリューションをダウンロードできます。 あなたの要件を満たすには、

お互いに異なる画像を表示するアニメーションを作成します。

私はこれをFlipViewコントロールとDispatcherTimerで実装しています。したがって、スプラッシュスクリーンは、自動的に画像を1つずつ表示することができる。

(異なる画面サイズ用)すべての画面サイズを取っスプラッシュ

FlipViewは常にウィンドウのサイズに合わせて画像が異なるデバイスで完全なウィンドウが表示されました。

XAMLコード:

<FlipView x:Name="ImageFlipView"> 
    <Image Source="ms-appx:///Assets/caffe600320.jpg" Stretch="Fill" /> 
    <Image Source="ms-appx:///Assets/cafee2.jpg" Stretch="Fill" /> 
    <Image Source="ms-appx:///Assets/caffe3.jpg" Stretch="Fill" /> 
</FlipView> 

コードの背後にある:

private SplashScreen splash; // Variable to hold the splash screen object 
internal bool dismissed = false; // Variable to track splash screen dismi 
internal Frame rootFrame; 
private readonly DispatcherTimer _timer; 

public ExtendedSplash(SplashScreen splashscreen, bool loadState) 
{ 
    this.InitializeComponent(); 
    StatusBar statusbar = StatusBar.GetForCurrentView(); 
    statusbar.HideAsync(); 
    if (splash != null) 
    { 
     splash.Dismissed += new TypedEventHandler<SplashScreen, Object>(D 
    } 
    rootFrame = new Frame(); 
    _timer = new DispatcherTimer 
    { 
     Interval = TimeSpan.FromSeconds(2) 
    }; 
    _timer.Tick += ChangeImage; 
    _timer.Start(); 
} 

private void ChangeImage(object sender, object e) 
{ 
    var totalItems = ImageFlipView.Items.Count; 
    var newItemIndex = (ImageFlipView.SelectedIndex + 1) % totalItems; 
    ImageFlipView.SelectedIndex = newItemIndex; 
} 
void DismissedEventHandler(SplashScreen sender, object e) 
{ 
    dismissed = true;    
} 

は、UWPデザイン義務づける方針で許可されますか?

文書は、独自の拡張の作成に関する推奨事項があります。公式文書Display a splash screen for more timeから

はあなたの延長スプラッシュスクリーンが正確にこれらの推奨事項に従うことによって、デフォルトのスプラッシュ画面を模倣していることを確認しますスプラッシュスクリーン。ベストプラクティスは推奨事項に従うことです。そして、スプラッシュスクリーンのためのガイドラインもお勧め:

  • は、広告を表示するには、スプラッシュ画面またはあなたの延長スプラッシュスクリーンを使用しないでください。
  • 複数の異なるスプラッシュ画面を表示するメカニズムとして拡張スプラッシュ画面を使用しないでください。スプラッシュ画面と拡張スプラッシュ画面の目的は、ユーザーにスムーズで洗練された読み込みを提供することです。
  • 「約」ページを表示するためにスプラッシュ画面または拡張スプラッシュ画面を使用しないでください。