Невозможно пройти тесты, в окне с вопросами пусто |
Графика, управление объектами
31.2. Загрузка изображений из Интернета
Для загрузки изображения в элемент Image из Интернета достаточно задать полный адрес изображения при настройке его свойства Source. Например, так, как показано на рис. 31.7.
Мы добавили это изображение на новую страницу Internet.xaml
Для того, чтобы загрузить изображение в элемент по какому-либо событию, нужно, для начала, создать соответствующую инфраструктуру. А именно, мы добавили на страницу новый текстовый блок с надписью "Коснитесь здесь для загрузки изображения" и определили для него обработчик события Tap. Кроме того, мы добавили новый элемент Image, в который планируем загружать изображение. В листинге 31.3 вы можете видеть XAML-код этих элементов.
<image number="31." Height="226" HorizontalAlignment="Left" Margin="12,71,0,0" Name="image2" Stretch="Fill" VerticalAlignment="Top" Width="262"/> <TextBlock Height="74" HorizontalAlignment="Left" Margin="9,26,0,0" Name="textBlock1" Text="Коснитесь здесь для загрузки изображения" VerticalAlignment="Top" Tap="textBlock1_Tap" />Листинг 31.3. XAML-код элементов
Теперь нужно поработать над обработчиком события Tap. Прежде чем загрузить изображение в элемент Image, нам нужно создать объект типа BitmapImage, воспользовавшись ссылкой на изображение. Свойство Source объекта Image – это не обычная текстовая строка, поэтому просто присвоить ему адрес изображения не достаточно. Для работы с объектом BitmapImage нам понадобится подключить в файле Internet.xaml.cs пространство имен System.Windows.Media.Imaging;
Полный код файла приведен в листинге 31.4
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; using System.Windows.Media.Imaging; namespace P24_1 { public partial class Internet : PhoneApplicationPage { public Internet() { InitializeComponent(); } private void textBlock1_Tap(object sender, GestureEventArgs e) { Uri uri = new Uri("http://img-2004-09.photosight.ru/18/620518.jpg"); BitmapImage bmp = new BitmapImage(uri); image2.Source = bmp; } } }Листинг 31.4. Код файла Internet.xaml.cs
Вот как выглядит страница в процессе разработки, рис. 31.8. Обратите внимание на то, что изображение, заданное ссылкой в свойстве Source отображается и в процессе разработки.