ідображення графічного файлу. AppBar - це панель застосунку, яка застосовується для размещения на ее поверхні елементів управління, команд та ІНСТРУМЕНТІВ для Користувачів. Вона віклікається при кліку правою кнопкою міші або помощью сполучення клавіш lt; Windows gt; + lt; Z gt ;. Кнопки (Buttons) Використовують для Відкриття діалогового вікна Вибори файлу, запуску слайд-шоу та показу информации про поточний файл. Інтерфейс сформувати помощью XAML-розміткі.
Рис. 8 Створення інтерфейсу користувача
3.2 Реалізація функціональніх можливіть
У даній Програмі весь функціонал реалізовано в двох класах: MainPage та PictureViewer. Клас PictureViewer опісує переглядача графічних файлів з відповіднім набором функцій. Для забезпечення его роботи у файл Із Оголошення включаючи низькі просторів імен. Описание тела класу почінається Із оголошення его полів та Властивості, что замікає множини значень поля Cn: IReadOnlyList lt; StorageFile gt; Paths;// Список об'єктів для Отримання информации про файл private Int32 Cn;// Номер поточного файлуBoolean IsOpened;// Чі Відкрито файлDispatcherTimer Timer;// Таймер для слайд-шоуint Current//встановлює номер потокового файлу
{{return Cn; }
{(value lt; Paths.Count amp; amp; value gt;=0)
{Cn=value; } if (value gt;=Paths.Count - 1)
{Cn=0; } if (value lt; 0)
{Cn=Paths.Count - 1; }
}
Перший метод чи не найголовнішій: вибір файлів. Саме файлів, а не одного файлу. У Windows 8 не дозволено прямого доступу до файлової системи. Застосунок может «Бачити» файли лишь у папці установки та у т. Зв. бібліотеках - папках, де можна відкріваті доступ до наявний в других папках документів, збережений, відео та МУЗИЧНИЙ файлів. Для розв язання подобной проблеми Використовують пікері (pickers). Смороду являютя собою діалогові вікна для Вибори файлів чі папок и могут повертаті масив Вибраного файлів. Тобто до файлу, что НЕ знаходиться в Розташування, Вказаною вищє, можна доступітіся лишь за посередництво такого пікера. Тому например, відкрівші для перегляду Одне фото и при цьом намагатіся клавішамі переключітіся на інше фото, Нічого не стане, тому что класи, с помощью якіх легко можна організуваті Такі Дії в застосунках Windows 8-Style UI НЕ підтрімуються. Вихід один: в діалоговому вікні вібрато пункт «Віділіті все». Метод Оголошення як internal, что Робить его бачимо лишь в межах даної Збірки. Реалізація наступна: async void OpenFile (Image IMG)
{Dialog=new FileOpenPicker();.FileTypeFilter.Clear();.FileTypeFilter.Add(laquo;.bmpraquo;);.FileTypeFilter.Add(laquo;.gifraquo;);.FileTypeFilter.Add(laquo;.jpegraquo;);.FileTypeFilter.Add(laquo;.jpgraquo;);.FileTypeFilter.Add(laquo;.pngraquo;);.FileTypeFilter.Add(laquo;.tifraquo;);lt;StorageFilegt; TryGetPaths=await Dialog.PickMultipleFilesAsync (); (TryGetPaths.Count!=0)=TryGetPaths; (Paths!=Null)
{(Timer == null)
{Current=0; } (IMG);=true; (Timer!=Null) .Stop ();
}
}
Тут створюється про єкт пікера, встановлюються фільтри на тип файлів. Далі помощью асинхронного виклику діалогового вікна створюється список файлів. Если ВІН не пустили, то на его адресою в пам яті буде вказуваті аналогічній список - член класу. Потім идет ряд перевірок на ті, чи запущено таймер и чі список файлів існує в пам яті та виклик методу для показу файлів. Це Зроблено для коректного Функціонування програми.
Наступний метод Виконує слайд-шоу: void StartSlideShow (Image IMG)
{= new DispatcherTimer (); interval=new TimeSpan (0, 0, 3) ;. Interval=interval; .Tick +=(object sender, object e)= gt;
{(IMG, true);
} ;. Start ();
}
У ньом створюється про єкт таймера, далі якому прісвоюється годину, по завершенні которого винна спрацьовуваті Подія Tick. Для обробніка події Використано лямбда-вирази, что має сигнатуру, Оголошення в делегаті події. После цього таймер запускається. У класі MainPage оголошено и включено в конструктор класу ініціалізацію про єкт класу PictureViewer: PictureViewer Viewer;// Об'єкт переглядачаMainPage ()
{. InitializeComponent ();=new PictureViewer ();
}
У методах - обробніках подій натіснення кнопок застосунку віклікано відповідні методи про єкту Viewer. Такоже реалізовано реакцію застосунку на натіснення кнопок Із стрілкамі: LEFT и RIGHT.
3.3 Тестовий приклад
Для Демонстрації про...