2013-06-10 2 views
3

У меня есть приложение, над которым я работаю. Мне нужен экран заставки для отображения по крайней мере 1 полная секунда (предпочтительнее 3 секунды) - достаточно долго, чтобы вы могли видеть весь экран заставки и быть в состоянии прочитать заголовок (удобно, не имея старайтесь поймать его, прежде чем он уйдет).Как сделать заставку более длинным

Я прочитал документы на Splashscreens на Windows Phone 8 на MSDN, и он говорит:

Как правило, вы должны использовать заставку в вашем приложении, только если ваше приложение необычно медленно, чтобы загрузить или если вы хотите добавить дополнительный брендинг в приложение. Если вы решили использовать заставку в своем приложении, у вас есть два варианта.

Мое приложение - это не приложение, в котором пользователи должны быстро его запускать, быстро что-то делать, а затем оставлять приложение - так что нет необходимости что-то бросать.

Итак, я успешно получил всплывающее окно. НО, проблема в том, что приложение загружает слишком быстро, чтобы вы могли заметить заставку.

Как я могу запрограммировать создание всплывающего экрана на секунду или два? Можете ли вы установить время на это? Можете ли вы задержать его дольше?

+3

Лично, даже если мне не нужно доступа приложение быстро, оно все равно будет раздражать меня каждый раз, когда заставка появляется больше секунды. Даже одна секунда уже в значительной степени. – JustAnotherUserYouMayKnow

+0

Затем отключите его в настройках. –

+0

Настройки -> «Сделать Splashscreen короче» .... Да. Неплохо! Я просто подумал: «Почему бы не в первую очередь, если это возможно ?!» Вы хотите, чтобы ваше приложение выделялось с помощью Splashscreen или самого приложения? – JustAnotherUserYouMayKnow

ответ

5

Отображается SplashScreen во время загрузки вашего приложения, поэтому время зависит от сложности вашего кода. Вы можете создать страницу XAML с вашим экраном, установить его как точку входа, подождать желаемого времени, а затем перенаправить на главную страницу.

Источник: Display Windows Phone Splash Screen For Longer Period

0

Я не могу поверить, насколько плохо моя память может быть в разы. Я только что нашел это в одном из моих старых приложений WP8:

// Code to execute when the application is launching (eg, from Start) 
    // This code will not execute when the application is reactivated 
    private void Application_Launching(object sender, LaunchingEventArgs e) 
    { 
      System.Threading.Thread.Sleep(DateTime.Now.TimeOfDay.Seconds + 3000); 
    } 

Работает как очарование! Поместите это в свой файл App.xaml.cs, и он отобразит SplashScreen (если есть) в течение 3 секунд.

-1

Быстрый поиск показывает другой пользователь, который имел эту проблему:

WPF SplashScreen , how to make splashscreen showing longer

SplashScreen splashScreen = new SplashScreen(); 
splashScreen.Show(false); 
+0

Ваш ответ работает на WPF, а не на Windows Phone. –

4

Просто создать страницу, которая выглядит точно так же, как на экране заставки и показать, что первый, сразу после заставки. Перейдите от него через секунду или два.

Включите пользователя, чтобы отключить его в настройках. Никто не хочет ждать больше для загрузки приложения, чем необходимо каждый раз.

5

Решение, которое вы хотите использовать (нить.сон) не очень хорошее решение, оно должно использоваться только для приложения, которое вы не собираетесь вносить в хранилище Windows. Официальное решение от Microsoft - использовать страницу XAML в качестве экрана всплеска (как опубликовано полиморфным). Я использовал решение XAML страницы до и это намного лучше, чем блокирования потока пользовательского интерфейса для 2 причин:

  1. Блокировки потока UI не хорошо и может флаг вашего приложения во время процесса проверки окна магазина, что делает его не пройти.
  2. Во время экрана всплеска у вас есть время для инициализации вашего компонента приложения с помощью модели async.

В предыдущем проекте я должен был показать заставка в течение 3 секунд (это было анимированный GIF), и во время, что я был в состоянии установить соединение с сервером и начать Георасположение услуги, используя код, подобный этому: например,

List<Task> tasks=new List<Task>(); 
tasks.Add(Task.Delay(3000)); // time used by splash screen 
tasks.Add(MyComponent1.DoWorkAsync()); 
tasks.Add(MyComponent2.DoWorkAsync()); 
await Task.WhenAll(tasks); //wait for all the task to complete 
+0

Эй, это здорово. И вы спасли меня от повторной отправки моего приложения. Спасибо! :-) –

0

Я обнаружил, что Tuto:

link

поясню вам нужно сделать:

  • создать XAML 'SplashPage.xaml'
  • в «SplashPage. xaml ":

    • Чтобы скрыть изменение строки состояния: оболочки: SystemTray.IsVisible = "True" -> оболочки: SystemTray.IsVisible = "False"
    • Добавить Изображение: <Image Source="/splash.jpg" Stretch="Fill"/>
  • в «SplashPage. XAML " 's кОД:

  • Добавить все код, который нужно в "погрузчик" Blockquote
public SplashPage() 
     { 
      InitializeComponent(); 
      Loaded += SplashPage_Loaded; 
     } 

     void SplashPage_Loaded(object sender, RoutedEventArgs e) 
     { 
      //ADD YOUR CODE 
     } 
} 
  • и когда вы хотите, чтобы показать 'MainPage.xaml' вызов:
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 
  • в "MainPage.xaml" 's КОД:
  • Чтобы сбросить все страницы в стеке делать что (с этим кодом вы удалите SplashPage из стека: D):
NavigationService.RemoveBackEntry(); 
Смежные вопросы