Опубликован: 14.08.2012 | Доступ: свободный | Студентов: 880 / 20 | Оценка: 5.00 / 5.00 | Длительность: 09:59:00
Специальности: Программист
Самостоятельная работа 24:

Графика, управление объектами

31.4. Манипуляция изображениями на экране

В качестве основы для манипуляции объектами на экране добавим на страницу (Manipulation.xaml) два изображения, опишем их свойства RenderTransform и назначим обработчики событий ManipulationDelta. В листинге 31.6 вы можете видеть XAML-код элементов.

          <image number="31." Height="128" 
                   HorizontalAlignment="Left" 
                   Margin="185,298,0,0" 
                   Name="image2" 
                   Stretch="Fill" 
                   VerticalAlignment="Top"
                   Width="128" 
                   Source="/P24_1;component/Images/Wall.png" ManipulationDelta="image2_ManipulationDelta">
                <image number="31.".RenderTransform>
                    <TranslateTransform x:Name="translate_im2" />
                </Image.RenderTransform>
            </Image>
            <image number="31." Height="64" 
                   HorizontalAlignment="Left" 
                   Margin="185,138,0,0" 
                   Name="image1" 
                   Stretch="Fill" 
                   VerticalAlignment="Top"
                   Width="64" 
                   Source="/P24_1;component/Images/Bonus1.png" ManipulationDelta="image1_ManipulationDelta">
                    <image number="31.".RenderTransform>
                         <TranslateTransform x:Name="translate_im1" />
                     </Image.RenderTransform>
                </Image>
Листинг 31.6. XAML-код изображений

Событие ManipulationDelta происходит при изменении позиции касания при манипуляции. Есть еще несколько событий, которые происходят при манипуляции, так, это ManipulationStarted, сигнализирующее о начале манипуляции, и ManipulationCompleted, указывающее на окончание действия.

Теперь напишем код обработчиков в файле Manipulation.xaml.cs, листинг 31.7.

private void image1_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
        {
          translate_im1.X += e.DeltaManipulation.Translation.X;
          translate_im1.Y += e.DeltaManipulation.Translation.Y;
        }

        private void image2_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
        {
            translate_im2.X += e.DeltaManipulation.Translation.X;
            translate_im2.Y += e.DeltaManipulation.Translation.Y;
        }
Листинг 31.7. Код обработчиков ManipulationDelta

Прикоснувшись к изображению мы можем перемещать его по экрану.

На рис. 31.11 вы можете видеть экран приложения.

Экран приложения

Рис. 31.11. Экран приложения

31.5. Выводы

В данной лабораторной работе мы рассмотрели различные варианты использования элемента управления Image для вывода изображений. В частности, вывод изображения, добавленного в проект на стадии разработки, загрузку изображений из Интернета, захват изображений с камеры, встроенной в телефон. Кроме того, мы рассмотрели методику манипуляции графическими объектами с использованием событий объекта Image

31.6. Задание

Изучите состав событий объекта Image, опишите возможные сценарии использования тех из них (вместе с подходящими вариантами трансформаций), которые, по вашему мнению, подходят для организации управления экранными объектами.

Гулич Анна
Гулич Анна
Невозможно пройти тесты, в окне с вопросами пусто