/ / Windows 10 Mobile - не може приховати рядок стану (StatusBar не існує в контексті) - windows, панель стану

Windows 10 Mobile - не можна сховати рядок стану (StatusBar не існує в контексті) - вікна, панель стану

Я намагаюся приховати рядок стану в своєму додатку Windows 10 Universal. У WP 8.1 я використовував StatusBar.GetForCurrentView().HideAsync();щоб приховати рядок стану, проте це не допоможеу моєму поточному проекті (Monogame, Win10 UAP) - я отримую помилку "StatusBar не знайдено в поточному контексті" (так, я використовую Windows.UI.ViewManagement). Я щось роблю неправильно, або цей варіант видалення StatusBar був видалений? Як мені це зробити в W10M? Заздалегідь спасибі.

Відповіді:

21 для відповіді № 1

Хитрість полягає в тому, що спочатку потрібно додати посилання на SDK Microsoft Mobile Extension SDK. Тоді код такий:

StatusBar statusBar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView();
await statusBar.HideAsync();

Довідку можна додати, клацнувши правою кнопкою миші науніверсальний проект. Виберіть "Додати посилання". У діалоговому вікні "Диспетчер посилань" виберіть "Універсальний Windows" зліва. Виберіть "Розширення" та встановіть прапорець "Microsoft Mobile Extension SDK ...".

Виберіть SDK розширення у диспетчері довідок

Оскільки це універсальне додаток, воно працюватиме на кожномупристрою, але API буде доступний лише на мобільних пристроях (він же Телефони) з ОС Windows 10. Отже, визначте, чи цей API доступний під час виконання, перш ніж ви дійсно викликаєте API. В іншому випадку він викине TypeLoadException під час виконання.

Використовуйте метадані Windows.Foundation.Metadata.Простір імен ApiInformation, щоб дізнатися, чи доступний API. (Наприклад, метод IsTypePresent (). Я рекомендую тут працювати з typeof замість Strings, наприклад подобається це:

var isStatusBarPresent = ApiInformation.IsTypePresent(typeof(StatusBar).ToString());

Докладніше про адаптивний код тут: https://channel9.msdn.com/Series/A-Developers-Guide-to-Windows-10/08