Ден осемнадесети
Въведение
Продължаваме да се запознаваме с различните елементи, които се използват в Windows Phone 7. Днес ще научим повече за важния елемент WebBrowser.
Въведение в WebBrowser
Нека добавим уеббраузър към страницата с просто плъзгане и пускане от лентата с инструменти. Кодът ще се появи в XAML:
Това ще включва пространството от именаxmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone".
За да се покаже страницата в браузъра, достатъчно е да извикате един метод:
Зареждане на локални HTML страници в уеббраузър
Нека подготвим необходимите HTML файлове за проекта. За нашия пример два файла са достатъчни, но можете да използвате повече.
Нека добавим два бутона към приложението за изтегляне на всеки файл. Тъй като ще работим с файл, трябва да добавим пространството от имена System.IO към проекта:
Ще добавим и пространството от имена на Microsoft.Xna.Framework:
Може да ви изненада, че искаме да използваме XNA в проект на Silverlight. Малко по-късно ще разберете защо имаме нужда от XNA. Сега просто повярвайте на думата ми. В манипулатора на събития за бутона напишете два реда код. В първия ред зареждаме HTML съдържанието в StreamReader, а във втория ред зареждаме съдържанието на HTML файла в WebBrowser с помощта на метода NavigateToString():
В допълнение към зареждането на вече съществуваща страница, можем да генерираме HTML директно в кода на приложението:
ФункциятаConvertExtendedAsciiсе използва за коригиране на възможни проблеми с кодирането.
Взаимодействие между приложение и скрипт
След това наричаме събитието:
Използване на индикатора за напредък
Тъй като изтеглянето на съдържание от мрежата може да отнеме известно време, трябва да покажетена потребителя, че програмата не е увиснала, а продължава да работи. Например, можете да покажете лента за напредък (ProgressBar). Трябва да зададетеIsIndeterminateна true и да показвате и скривате индикатора в точното време. По-долу е XAML и C# кодът:
Съответно, когато страницата се зареди, ProgressBar ще бъде видим, а след зареждане на страницата ще бъде скрит.
Ефекти в WebBrowser
Важно е да се отбележи, че контролът на Windows Phone 7 WebBrowser, за разлика от своя аналог Silverlight за настолен компютър, не се нуждае от HtmlBrush, тъй като повечето от графичните трансформации могат да се извършват в самия браузър. Например, нека завъртим WebBrowser на 45 градуса по оста Y:
Ето как ще изглежда:
В този случай елементът WebBrowser е напълно интерактивен и продължава да работи както обикновено. В приложение Silverlight 4 извън браузъра не бихме могли да направим това.
Заключение
Днес се запознахте с елемента WebBrowser за навигация в html страници. За по-добро разбиране на материала препоръчвам да изтеглите източника и да го проучите.